eine vorgegebene Form wie <form name="myForm">
Angenommen, es ist leicht genug, um ihre Gültigkeit zu beobachten, Fehler, schmutzigen Zustand, etc., um eine einfache Uhr mit:Uhr Form Modell für Änderungen
$scope.$watch('myForm.$valid', function() {
console.log('form is valid? ', $scope.myForm.$valid);
});
Allerdings ist es nicht angezeigt, Eine einfache Möglichkeit zu beobachten, ob sich irgendeine Eingabe in diesem Formular geändert hat. Tief beobachten, wie so, funktioniert nicht:
$scope.$watch('myForm', function() {
console.log('an input has changed'); //this will never fire
}, true);
$watchCollection
geht nur eine Ebene tiefer, was bedeutet, würde ich eine neue Uhr für jeden Eingang anlegen. Nicht ideal.
Was ist eine elegante Möglichkeit, ein Formular für Änderungen an jeder Eingabe zu beobachten, ohne auf mehrere Uhren zurückgreifen zu müssen oder ng-change
auf jeden Eingang zu setzen?
mögliches Duplikat von [AngularJS 1.3 - \ 'ng-change \' - ähnliche Funktionalität für das gesamte Formular] (http://stackoverflow.com/questions/28677638/angularjs-1-3-ng-change-like- Funktionalität-für-die-Gesamt-Form) – DTing
Die Richtlinie Lösung in dieser Frage funktioniert, aber es ist nicht, was ich im Sinn hatte (dh nicht elegant, da es Unschärfe erfordert, um zu arbeiten). Idealerweise möchte ich, dass dies auf ähnliche Weise funktioniert, wenn angular intern eine Form auf $ valid oder $ error setzt, unmittelbar nachdem sich eine untergeordnete Eingabe entsprechend geändert hat. – Duncan