在基因敲除(snockout.js)2.1.0中,在使用foreach绑定的模板中,您可以通过$ index()函数访问当前项目的索引。在嵌套的foreach绑定中,是否有任何方法可以从模板访问$ parent的索引?
说我有一个像这样的数据结构:
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
},
...
]};
这样,我想使用索引:[topModel-index subModel-index]打印每个模型的路径,这样输出将类似于:
[0 0]
[0 1]
[1 0]
[2 0]
[2 1]
...
我已经使用foreach绑定了模型,但是我不知道如何在子模型的上下文中访问topModel的索引。下面的示例显示了我尝试过的一种方法,但是它不起作用,因为我无法弄清楚如何访问$ parent引用者的索引。
<!--ko foreach: topModel -->
<!--ko foreach: subModel -->
[<span data-bind="text: $parent.index()"></span>
<span data-bind="text: $index()"></span>]
<!--/ko-->
<!--/ko-->
应打印出:0 1,0 2,1 0,1 1,1 2,2 0,2 1,...
()
之后,您实际上并不需要它$index
。