Greifen Sie auf den Index von $ parent in knockout.js zu

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 übergeordneten Elements $ 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 auf den topModel-Index im Kontext des SubModels zugegriffen werden kann. Das folgende Beispiel zeigt einen Ansatz, den ich ausprobiert habe, der jedoch nicht funktioniert, da ich nicht herausfinden kann, wie ich auf den Index des übergeordneten Verweises $ zugreifen kann.

<!--ko foreach: topModel -->
<!--ko foreach: subModel -->
  [<span data-bind="text: $parent.index()"></span>
  <span data-bind="text: $index()"></span>]
<!--/ko-->
<!--/ko-->

Soll gedruckt werden: 0 1, 0 2, 1 0, 1 1, 1 2, 2 0, 2 1, ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage