Wie validiere ich ein Array?

8

Ich versuche, knockout validation lib zu verwenden, um ein Array von Objekten zu validieren. Es ist nicht einfach für mich, eine Validierungsgruppe für ein Array von Observablen zu bilden. Der einzige Weg, wie ich es geschafft habe, ist wie folgt ( JSFIDDLE enthalten ):

%Vor%

Es scheint so, als wäre mein Ansatz unnötig ausführlich. Entsprechend dem Quellcode können Sie einfach ein Observable an ko.validation.group übergeben:

%Vor%

Aber das funktioniert nicht.

    
Dziamid 07.06.2012, 17:07
quelle

2 Antworten

14

Es gibt eine Konfigurationsoption für die Gruppierung als tief (rekursiv). Es kann global mit ko.validation.init( { grouping: { deep: true } } ) eingestellt werden oder in group selbst aufrufen, z. B .: self.errors = ko.validation.group( self.notes(), {deep: true} );

Aktualisierte Geige hier: Ссылка

BTW, wie Sie es gemacht haben, könnte in viel kürzerer Form geschrieben werden:

%Vor%

Bearbeiten : Meine Geige funktioniert nicht mehr mit der neuesten Version der KO-Validierung. Hier ist die gleiche Geige, die die neueste Version zu dem Zeitpunkt verwendete, als ich die Antwort gab (Juni 2012): Ссылка

    
antishok 07.06.2012, 19:27
quelle
2

Ich habe einen schlechten Ruf zu kommentieren. Also hier kommt eine andere Antwort. Die Antwort mit den zur Verfügung gestellten Fideln von antishok scheint nicht mehr zu funktionieren. (Der Link zu knockout.js war kaputt, aber selbst nach der Korrektur und dem Hinzufügen eines funktionierenden Links zu knockout 3.0 funktionierte es immer noch nicht)

Ich habe ko.computed um die ko.validation.group () hinzugefügt und es so funktioniert.

%Vor%

Ссылка (aktualisiert)

Ich vermute, es gibt einen besseren Weg, dies zu tun, aber jetzt löst es mein Problem, und ich freue mich darauf, korrigiert zu werden / eine bessere Lösung zu sehen:)

    
Yodiz 05.11.2013 13:44
quelle