tutorial template knockoutjs knockout for define component javascript knockout.js jquery-templates

javascript - template - El índice de acceso de $ parent en knockout.js



knockoutjs variables (2)

La forma más sencilla de averiguarlo es descargando el "contexto de nocaut" para Chrome. Esto le muestra qué datos están vinculados a qué elemento y también le permite ver las funciones / variables disponibles para ese elemento en particular. Es una herramienta increíble para situaciones como estas.

En knockout.js 2.1.0, en una plantilla que utiliza 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 así como:

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

He enlazado los modelos usando foreach, pero no puedo entender cómo acceder al índice de topModel en el contexto del subModel. El siguiente ejemplo muestra un enfoque que he intentado, pero no funciona, ya que no puedo entender cómo acceder al índice de $ 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, ...


para acceder al índice del uso del objeto principal

$parentContext.$index()

más bien que

$parent.index()