首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >knockout.js中$parent的访问索引

knockout.js中$parent的访问索引
EN

Stack Overflow用户
提问于 2012-06-11 18:39:01
回答 2查看 27.4K关注 0票数 90

在knockout.js 2.1.0中,在使用foreach绑定的模板中,可以通过$index()函数访问当前项的索引。在嵌套的foreach绑定中,有没有办法从模板访问$parent的索引?

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

代码语言:javascript
复制
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
    },
    ...
    ]};

这样,我希望使用index: topModel-index subModel-index打印每个模型的路径,这样输出将类似于:

代码语言:javascript
复制
[0 0]
[0 1]
[1 0]
[2 0]
[2 1]
...

我已经使用foreach绑定了模型,但是我不知道如何在subModel的上下文中访问topModel的索引。下面的示例显示了我尝试过的一种方法,但它不起作用,因为我不知道如何访问$parent referrer的索引。

代码语言:javascript
复制
<!--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,...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-13 18:56:58

要访问父对象的索引,请使用

代码语言:javascript
复制
$parentContext.$index()

而不是

代码语言:javascript
复制
$parent.index()
票数 189
EN

Stack Overflow用户

发布于 2016-05-16 15:15:40

你可以找到的最简单的方法是下载chrome的"knockout context“。这将向您显示绑定到哪个元素的数据,还允许您查看该特定绑定元素的可用函数/变量。对于这样的情况,它是一个令人惊叹的工具。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10978551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档