En knockout.js 2.1.0, en una plantilla que usa el enlace foreach, puede acceder al índice del elemento actual a través de la función $ index (). En un enlace foreach anidado, ¿hay alguna forma de acceder al índice de $ parent desde una plantilla?
Digamos que tengo una estructura de datos como esta:
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
},
...
]};
Con esto, quiero imprimir la ruta a cada modelo, usando índices: [topModel-index subModel-index], para que la salida sea algo como:
[0 0]
[0 1]
[1 0]
[2 0]
[2 1]
...
He enlazado los modelos usando foreach, pero no puedo averiguar cómo acceder al índice de topModel en el contexto del subModel. El siguiente ejemplo muestra un enfoque que he probado, pero no funciona, ya que no puedo averiguar cómo acceder al índice del $ parent referrer.
<!--ko foreach: topModel -->
<!--ko foreach: subModel -->
[<span data-bind="text: $parent.index()"></span>
<span data-bind="text: $index()"></span>]
<!--/ko-->
<!--/ko-->
Debe imprimir: 0 1, 0 2, 1 0, 1 1, 1 2, 2 0, 2 1, ...
()
después de$index
allí.