Rufen Sie den asynchronen Dienst in der benutzerdefinierten AngularJS-Validierungsanweisung auf

8

Ich habe eine Anweisung für die benutzerdefinierte Überprüfung (überprüfen Sie, ob ein Benutzername noch nicht existiert). Die Validierung verwendet den $ http-Dienst, um den Server nach dem Vorhandensein des Benutzernamens zu fragen. Daher ist die Rückgabe ein Zusicherungsobjekt. Dies funktioniert fantastisch für die Validierung. Das Formular ist ungültig und enthält die Datei myform. $ Error.usernameVerify, wenn der Benutzername bereits vergeben ist. Allerdings ist user.username immer undefiniert, so dass es meine ng-model-Direktive bricht. Ich denke, das liegt wahrscheinlich daran, dass die Funktion in .success ihren eigenen Bereich erstellt und der Rückgabewert nicht auf den Controllern $ scope verwendet wird. Wie behebe ich das Problem, damit die ng-Modellbindung funktioniert?

%Vor%

Hier ist meine Vorlage:

%Vor%     
Ryan Langton 17.06.2014, 20:06
quelle

2 Antworten

4

Um dies zum Laufen zu bringen, musste ich "Rückgabewert" hinzufügen; außerhalb des asynchronen Aufrufs. Code unten.

%Vor%     
Ryan Langton 18.06.2014, 15:13
quelle
16

Angular hat für genau diese Situation ein dediziertes Array von $ asyncValidators:

Siehe Ссылка

%Vor%     
Forge_7 10.10.2014 11:34
quelle