assumendo una data forma, come <form name="myForm">
, è abbastanza facile da guardare per la validità, l'errore, stato di sporcizia, ecc con un semplice orologio:orologio modello di modulo per le modifiche
$scope.$watch('myForm.$valid', function() {
console.log('form is valid? ', $scope.myForm.$valid);
});
Tuttavia, non sembra essere un modo semplice per vedere se qualsiasi dato input in questo modulo è cambiato. guardare in profondità in questo modo, non funziona:
$scope.$watch('myForm', function() {
console.log('an input has changed'); //this will never fire
}, true);
$watchCollection
va solo un livello profondo, il che significa che avrei dovuto creare un nuovo orologio per ogni ingresso. Non ideale
Che cos'è un modo elegante per visualizzare un modulo per le modifiche su qualsiasi input senza dover ricorrere a più orologi o posizionare ng-change
su ciascun input?
possibile duplicato di [AngularJS 1.3 - \ 'ng-change \' -like funzionalità per l'intero modulo] (http://stackoverflow.com/questions/28677638/angularjs-1-3-ng-change-like- funzionalità-per-l'-intero-modulo) – DTing
La soluzione direttiva in quella domanda funziona, ma non è quello che avevo in mente (cioè non elegante, dal momento che richiede la sfocatura per funzionare). Idealmente mi piacerebbe che questo funzionasse in modo simile a quanto angolare imposta internamente un modulo a $ valid o $ error immediatamente dopo che un input secondario cambia in modo appropriato. – Duncan