Angezeigter Fehler ngMessage

8

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%     
ps0604 15.02.2016, 04:48
quelle

3 Antworten

19

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:

%Vor%

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:

%Vor%

Fixed Plunker

    
ryanyuyu 15.02.2016, 05:12
quelle
17

Um dies zu erreichen, verwenden Sie $ setValidity

%Vor%     
Dmitry K 04.10.2016 09:40
quelle
6

Die Antwort des Dmitry K ist ausgezeichnet.

Ich werde die Antwort erweitern.

%Vor%

Und der relevante HTML-Code:

%Vor%     
Pablo Sanchez Manzano 04.04.2017 15:46
quelle

Tags und Links