2013-03-07 3 views
6

In diesem doc: http://knockoutjs.com/documentation/foreach-binding.html Iteration wird die ‚foreach‘ erreicht mit Bindung:Wie Größe für den Zugriff auf ‚foreach:‘ Bindung in Knockout js>

<tbody data-bind="foreach: people"> 

Ist es möglich, über die Größe dieser Bindung zugreifen Javascript/Jquery?

Etwas wie: alert('People size is '+people.size);

Ich brauche die Größe, um den Zugriff auf eine einfache Gültigkeitsprüfung zu tun.

+0

wann/wo möchten Sie das wissen? –

+0

@ DanielA.White ive aktualisiert die Frage –

+0

haben Sie Zugriff auf das View-Modell in diesem Kontext? –

Antwort

12

Meinst du innerhalb der foreach selbst? Sie können die Eltern in der Schleife aufrufen, dann wieder die beobachtbare Array zugreifen:

$parent.people().length 

Oder überall Sie die Ansicht Modell gebunden haben, können Sie anrufen:

people().length 

Oder Sie können eine beobachtbare berechnet hinzufügen zu deinem Sichtmodell. Innerhalb Ihres View-Modell-Codes, weisen Sie dies einer Var namens self zu, dann:

var peopleCount = ko.computed(function() 
{ 
    return self.people().length; 
} 
+0

Ich muss darauf zugreifen, außerhalb der Schleife, aber vielleicht kann ich $ parent.people(). Länge zu einer Var zuweisen? –

+0

Hier sind ein paar Optionen für Sie. –