Um die Dinge zu vereinfachen, habe ich eine Probe Form bis zu meiner Frage zu beschreiben:Warum ist ein ungültiges Formular zuerst gültig und rechts nachdem es ungültig wird?
<form novalidate name="form">
<input required name="foo" ng-model="my.foo">
</form>
Und auch ein Controller:
angular.module('sample', []).controller('MainController', function($scope) {
$scope.$watch('form.$valid', function (valid) {
console.log(valid);
});
});
Erwartetes Ergebnis:
> false
Tatsächliches Ergebnis:
> true
> false
Kann mir jemand sagen warum zuerst das Formular gültig ist und dann ungültig wird (was soll es übrigens sein)?
Wahrscheinlich während eines Digests als wahr initialisiert und später geändert, wenn es die erforderliche Eingabe erfüllt. Nur eine Spekulation. –
@OmriAharon Genau das passiert, aber warum? Sollte es nicht auch bei der Initialisierung ungültig sein? – Carlos
Ich würde sagen, dass, wenn es noch nicht die erforderliche Eingabe gefunden hat, es nicht wissen wird, dass es ungültig ist, da bis dahin ist es nur ein leeres Formular. Wäre aber nett wenn ich doch eine Bestätigung bekommen könnte, habe das in keiner Ressource gefunden ... –