Assista formulário de validade do controlador
-
21-12-2019 - |
Pergunta
Eu tenho um formulário dentro do meu controlador.Eu gostaria de ser capaz de definir um escopo variável, baseado sobre a validade deste formulário.Eu tenho dado a forma de um nome já:
<div ng-controller="myCtrl">
...
<form name='myForm'>
...
</form>
...
</div>
E se tiver criado um $assistir no formulário de dólares de propriedade válido (este está localizado no controlador que contém o formulário):
$scope.$watch('myForm.$valid', function(oldVal, newVal) {
console.log("Woo! This might be working!");
if (newVal) {
$scope.otherVar = true;
} else {
$scope.otherVar = false;
}
}
A minha declaração de log aparece APENAS no carregamento da página, mas não quando o formulário de validade da mudança.(Eu tenho verificado que o formulário de us $válido propriedade está mudando inserindo:
{{ myForm.$válido }}
no âmbito do meu formulário)Eu estive olhando em volta e pelo que tenho visto este deve estar trabalhando.(Obviamente que algo está errado, embora...)
Solução
Eu acho que o seu problema é function(oldVal, newVal)
deve ser function(newVal, oldVal)
.Além de que eu não posso encontrar qualquer falha em seu código.Aqui está um trabalho plunkr exemplo: http://plnkr.co/edit/ur42HFcVQbpTEBkRBtdY?p=preview
Fora que é provavelmente algo mais no seu código que afetam o formulário, você não tem aninhado em algo como um ng-if
ou ng-view
?