在knockout.js $父的访问指数(Access index of $parent in kn

2019-06-25 10:04发布

在knockout.js 2.1.0,在使用foreach绑定模板,你可以访问当前项目的索引虽然$ index()函数。 在嵌套的foreach约束力,有没有办法从模板访问$父的指数?

说我有一个这样的数据结构:

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指数子模型指数],从而使输出会是这样的:

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

我一直在使用的foreach绑定的模式,但我无法弄清楚如何访问TOPMODEL的指数的子模型的情况下。 下面的例子显示我已经试过的方法,但它不工作,因为我无法弄清楚如何访问$父引用的指数。

<!--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,...

Answer 1:

来访问父对象使用的索引

$parentContext.$index()

而不是

$parent.index()


Answer 2:

你可以找到最简单的方法是下载“淘汰赛中,”铬。 这说明你什么数据绑定到什么元素,也可以让你看到可用的函数/变量到特定的绑定元素。 就是在这样的情况下,这些惊人的工具。



文章来源: Access index of $parent in knockout.js