Wiem, że są inne podobne pytania do tego, ale przeczytałem je wszystkie i żadne z nich nie działa dla mnie.
Kiedy próbuję ustawić moją formę na dziewiczy, wciąż otrzymuję ten błąd:
TypeError: Cannot read property '$setPristine' of undefined
Kontroler i moją wersję kątową (1.4.2) to wszystko w porządku, bo mam też inne rzeczy dzieje w tej samej funkcji wywołującej metodę $setPristine();
i ta działa.
Jest to kod używam:
html
<form name="cadTel" novalidate>
<div class="form_group">
<label class="col-md-4 f--label"><i class="fa fa-asterisk"></i>Nome</label>
<div class="col-md-8 f--input">
<input type="text" name="ds_contato" ng-model="tel.ds_contato" ng-required="true" />
</div>
</div>
<div class="form_group">
<label class="col-md-4 f--label"><i class="fa fa-asterisk"></i>Telefone</label>
<div class="col-md-8 f--input">
<input type="text" name="num_tel" mask="(99) 9?9999-9999" ng-model="tel.num_tel" ng-required="true" />
</div>
</div>
<input type="button" class="bt-m bt-suc" name="cadastrar" value="Salvar" ng-click="add_telefone(tel)">
<div class="bt-m bt-war" ng-click="reset()">Limpar</div>
</form>
app.js
$scope.tel = {};
$scope.add_telefone = function(tel) {
$scope.tel = angular.copy(tel);
$http({
method: 'POST',
url:'dist/php/db.php?action=add_telefone',
data:$scope.tel,
})
.success(function (data, status, headers, config) {
$scope.reset();
})
.error(function (data, status, headers, config) {
});
};
$scope.reset = function() {
$scope.tel = {};
$scope.cadTel.$setPristine();
};
Opcja do czyszczenia wartości są działa ale aby ustalić nieskazitelny żaden.
Wszelkie pomysły?
W oparciu o to, co nam dałeś, wszystko działa. Zobacz ten [plunker] (http://plnkr.co/edit/TGIyQjp3lR9XviVuexAl?p=preview) – Tom
@Tom Jakiś pomysł na to, co może się wydarzyć? Nawiasem mówiąc, dołączam do tego szablon z dyrektywą. – celsomtrindade