Indice d'accès de $ parent par knockout.js

Dans knockout.js 2.1.0, dans un modèle utilisant la liaison foreach, vous pouvez accéder à l'index de l'élément actuel grâce à la fonction $ index (). Dans une liaison SNACH imbriquée, existe-t-il un moyen d'accéder à l'index du parent par un modèle?

Disons que j'ai une structure de données comme celle-ci:

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 }, ... ]}; 

Avec cela, je veux imprimer le chemin d'accès à chaque modèle, en utilisant des indices: [topModel-index subModel-index], de sorte que la sortie sera quelque chose comme:

 [0 0] [0 1] [1 0] [2 0] [2 1] ... 

J'ai lié les modèles en utilisant foreach, mais je ne peux pas comprendre comment accéder à l'index topModel dans le contexte du sous-modèle. L'exemple suivant montre une approche que j'ai essayée, mais cela ne fonctionne pas, car je ne peux pas comprendre comment accéder à l'index du parent par parent.

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

Doit imprimer: 0 1, 0 2, 1 0, 1 1, 1 2, 2 0, 2 1, …

Pour accéder à l'index de l'utilisation de l'objet parent

 $parentContext.$index() 

plutôt que

 $parent.index() 

La façon la plus simple que vous puissiez découvrir est de télécharger "contexte knock-out" pour Chrome. Cela montre que les données sont liées à quel élément et vous permet également de voir les fonctions / variables disponibles à cet élément lié particulier. C'est un outil incroyable pour des situations comme celles-ci.