In knockout.js 2.1.0 können Sie in einer Vorlage mit der foreach-Bindung über die Funktion $ index () auf den Index des aktuellen Elements zugreifen. Gibt es in einer verschachtelten foreach-Bindung eine Möglichkeit, über eine Vorlage auf den Index des $ parent zuzugreifen?
Angenommen, ich habe eine Datenstruktur wie diese:
var application = {
topModel: [
{
{subModel: [{'foo':'foo'}, { 'bar':'bar'}]}, // this has top:0 and sub:0
{subModel: [{'foo2':'foo2'}, { 'bar2':'bar2'}]} // this has top:0 and sub:1
},
{
{subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:1 sub:0
},
{
{subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:2 sub:0
{subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:2 sub:1
},
...
]};
Damit möchte ich den Pfad zu jedem Modell unter Verwendung von Indizes drucken: [topModel-index subModel-index], so dass die Ausgabe ungefähr so aussieht:
[0 0]
[0 1]
[1 0]
[2 0]
[2 1]
...
Ich habe die Modelle mit foreach gebunden, kann aber nicht herausfinden, wie ich im Kontext des Submodells auf den Index des topModels zugreifen kann. Das folgende Beispiel zeigt einen Ansatz, den ich ausprobiert habe, der jedoch nicht funktioniert, da ich nicht herausfinden kann, wie auf den Index des $ parent-Referrers zugegriffen werden kann.
<!--ko foreach: topModel -->
<!--ko foreach: subModel -->
[<span data-bind="text: $parent.index()"></span>
<span data-bind="text: $index()"></span>]
<!--/ko-->
<!--/ko-->
Sollte ausdrucken: 0 1, 0 2, 1 0, 1 1, 1 2, 2 0, 2 1, ...
()
nach dem$index
dort eigentlich nicht mehr .Antworten:
um auf den Index des übergeordneten Objekts zuzugreifen, verwenden Sie
eher, als
quelle
$parentContext.$index()
die Eltern wenden. ; ^) Ein bisschen mehr zu $ parentContext hier , fwiw.$parentContext.$index()
$parentContext.$parentContext.$index()
funktioniert, wie Sie es auch erwarten würden.Der einfachste Weg, dies herauszufinden, ist das Herunterladen von "Knockout-Kontext" für Chrome. Dies zeigt Ihnen, welche Daten an welches Element gebunden sind, und zeigt Ihnen die verfügbaren Funktionen / Variablen für dieses bestimmte gebundene Element. Es ist ein erstaunliches Werkzeug für solche Situationen.
quelle