在 knockout.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 绑定了模型,但我不知道如何在 subModel 的上下文中访问 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, ...