In diesem Plunk ist das Ziel, eine Fehlermeldung basierend auf einer Validierung im Controller (statt die eingebauten required
oder min-length
). Der Nachrichtenfehler wird nicht angezeigt, wenn die ng-message-exp festgelegt ist. Irgendwelche Ideen wie man das funktioniert?
HTML
%Vor%
Javascript
%Vor% Ihr Haupt-Argument ng-messages
ist an myForm.field1.$error
gebunden, aber Sie fügen dem form.field1.$error
niemals einen Fehler hinzu. Stellen Sie in Ihrem Controller einfach $error
object selbst ein:
Dann können Sie einfach die ng-message
-Direktive ausführen lassen. Die untergeordneten Elemente, die ng-message
bereitstellen, werden bereits als Eigenschaften ihres übergeordneten ng-messages
ausgewertet (beachten Sie die zusätzlichen s
). In der Regel wird dies verwendet, wobei das übergeordnete Objekt das $error
-Objekt des Formularelements ist und die inneren untergeordneten Elemente die Eigenschaften wie $error.required
oder in Ihrem Fall $error.validationError
sind. Keine Notwendigkeit für ng-message-exp
hier:
Die Antwort des Dmitry K ist ausgezeichnet.
Ich werde die Antwort erweitern.
%Vor%Und der relevante HTML-Code:
%Vor%Tags und Links angularjs