Dynamische Validierung und Name in einem Formular mit AngularJS
Ich habe dieses Formular : http://jsfiddle.net/dfJeN/
Wie Sie sehen können, der name-Wert für die Eingabe statisch festgelegt :
name="username"
die Formular-Validierung funktioniert gut (etwas hinzufügen, und entfernen Sie den gesamten text aus der Eingabe ein text muss angezeigt).
Dann versuche ich auf dynamisch setzen Sie die name-Wert : http://jsfiddle.net/jNWB8/
name="{input.name}"
Dann habe ich dies zu meinem Validierung
login.{{input.name}}.$error.required
(dieses Muster wird in ein ng-repeat) aber meine Formular-Validierung ist gebrochen. Es ist richtig interpretiert mein browser (wenn ich überprüfen das element sah ich login.username.$Fehler.erforderlich).
Irgendeine Idee ?
EDIT: Nach dem einloggen werden die Rahmen in der Konsole scheint es, dass die
{{input.name}}
Ausdruck ist nicht interpolieren. Meine form als {{input.name}} - Attribut, aber kein Benutzername.
UPDATE: Seit 1.3.0-rc.3 name="{{input.name}}" funktioniert wie erwartet. Bitte sehen #1404
InformationsquelleAutor der Frage IxDay | 2013-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht tun, was Sie versuchen zu tun, Weg.
Vorausgesetzt, was Sie zu tun versuchen ist, dass Sie brauchen, um dynamisch hinzufügen von Elementen zu einem Formular, mit so etwas wie ng-repeat, müssen Sie die Verwendung von verschachtelten ng-form zu ermöglichen, die Validierung der einzelnen Elemente:
Traurig, es ist eben nicht eine gut dokumentierte Funktion Angular.
InformationsquelleAutor der Antwort Ben Lesh
Mithilfe von geschachtelten ngForm ermöglicht Ihnen den Zugriff auf bestimmte InputController, die von innerhalb der HTML-Vorlage. Jedoch, wenn Sie darauf zugreifen möchten, von einem anderen controller, es hilft nicht.
z.B.
Ich verwenden Sie diese Richtlinie, um zu helfen, das problem zu lösen:
Nun verwenden Sie dynamische Namen, wo immer benötigt wird nur der "dynamische-name' - Attribut des 'name' - Attribut.
z.B.
InformationsquelleAutor der Antwort EnISeeK
Sollte das problem behoben sein AngularJS 1.3, nach dieser Diskussion über Github.
Zwischenzeit, hier ist eine temporäre Lösung erstellt durch @caitp und @Thinkscape:
Demo auf JSFiddle.
InformationsquelleAutor der Antwort Paolo Moretti
Nice one @EnISeeK.... aber ich habe es eleganter und weniger aufdringlich zu anderen Richtlinien:
InformationsquelleAutor der Antwort srfrnk
Nur eine kleine Verbesserung über EnlSeek Lösung
Hier ist eine Studie plunker. Hier ist eine detaillierte Erklärung der
InformationsquelleAutor der Antwort jason zhang
Erweitere ich die @caitp und @Thinkscape Lösung ein bisschen, damit dynamisch erstellt, geschachtelte ng-Formenwie diese:
Hier ist meine demo auf JSFiddle.
InformationsquelleAutor der Antwort Gabriel C. Stabel
Benutzte ich Ben Lesh die Lösung und es funktioniert gut für mich. Aber ein problem, das ich konfrontiert war, wenn ich fügte hinzu, eine innere form mit
ng-form
alle Staaten Formen z.B.form.$valid, form.$error
etc wurde undefiniert, wenn ich mit denng-submit
Richtlinie.Also, wenn ich mir dieses zum Beispiel:
Und in meinem controller:
Also ich musste gehen Sie zurück, um mit einem normalen click-Ereignis für die Einreichung das Formular in welchem Fall es notwendig ist, übergeben Sie das Formular-Objekt:
Und der überarbeitete controller-Methode:
Ich bin mir nicht ganz sicher, warum das ist, aber hoffentlich hilft es jemanden.
InformationsquelleAutor der Antwort sq1020
Dieses Problem wurde behoben in Eckigen 1.3+
Dies ist die korrekte syntax für das, was Sie zu tun versuchen:
InformationsquelleAutor der Antwort user1261710