AngularJS: listet alle Formularfehler auf

Hintergrund:
Ich arbeite derzeit an einer Anwendung, mit Reitern; und ich möchte die Liste der Felder /Abschnitte, die der überprüfung nicht standhalten, um den Benutzer auf Fehler im rechten tab.

Also habe ich versucht zu nutzen form.$error zu tun; doch bin ich nicht vollständig erhalten, es funktioniert.

Wenn die Validierung Fehler auftreten, innerhalb einer ng-repeat, z.B.:

<div ng-repeat="url in urls" ng-form="form">
  <input name="inumber" required ng-model="url" />
  <br />
</div>

Leere Werte ergeben form.$error mit den folgenden:

{ "required": [ 
{ 
"inumber": {} 
}, 
{ 
"inumber": {} 
} 
] }

Auf der anderen Seite, wenn die Validierung Fehler auftreten, die außerhalb dieses ng-repeat:

<input ng-model="name" name="iname" required="true" />

Den form.$error - Objekt enthält die folgenden:

{ "required": [ {} ] }

doch, würde ich erwarten, dass die folgenden:

{ "required": [ {'iname': {} } ] }

Irgendwelche Ideen auf, warum der name des element fehlt?

Einer Laufenden plunkr können hier gefunden werden:
http://plnkr.co/x6wQMp

Kommentar zu dem Problem
Ich bemerkte dies, den anderen Tag. Es macht keinen Sinn für mich, weil Sie überprüfen können, form.iname.$error und erhalten die richtigen Werte. Was ich am Ende Tat, war die Verwendung von form.$valid zu prüfen, Gültigkeit und aktivieren Sie Schaltfläche Absenden statt. Kommentarautor: Ed Hinchliffe
Hallo Ed, vielen Dank für Ihre Antwort. Ich bin damit einverstanden, aber ich würde sagen, der Benutzer die Kontrolle versagt zu überprüfen. Die form ist innerhalb einer Registerkarten-Ansicht, so dass es leicht ist zu übersehen, dass Sie nicht sparen können, weil es ist ein Fehler bei der überprüfung der im inneren eine Wiederholung in einer Registerkarte, in der Sie sich derzeit nicht anzeigen. (Ich hoffe meine Erklärung war gut genug, um zu Folgen :)) Kommentarautor: michael
Ich Stimme ja, es ist gut um dem Benutzer zu zeigen, was gültig ist und was nicht. Eine Möglichkeit ist, dass Sie Fehler-text in <span> - tags für alle möglichen Fehler, und verwenden Sie ng-show="form.fieldName.$Fehler.erforderlich", zum Beispiel. Sie könnten dann entweder inline diejenigen, die mit den Eingängen, oder legen Sie Sie in der Nähe der Absenden-Schaltfläche. Es ist definitiv nicht ideal, aber ich Frage mich, ob die unbestückte $error - Wert ist ein Fehler mit der Winkelgeschwindigkeit? Kommentarautor: Ed Hinchliffe
Ich glaube, dass $error gefüllt wird, die Sie nicht nur werfen Sie es aus als JSON schön. Schauen Sie hier: plnkr.co/Bearbeiten/Z47J2W?p=Album Vorhören Der Fehler-Typen können alle Durchlaufen werden. Kommentarautor: c0bra
c0bra: danke, ich werde versuchen zu Folgen, Ihre Lösung, sieht aus wie es tut genau das, was ich brauche. Kommentarautor: michael

InformationsquelleAutor der Frage michael | 2014-03-11

Schreibe einen Kommentar