在knockout.js中使用$ parentContext。$ index访问父循环id

时间:2014-06-05 12:49:59

标签: javascript jquery knockout-2.0 jquery-mobile-collapsible

<div id="tree"  data-role="collapsible-set"  data-bind="foreach:VM1.Folders"> **Parent Loop**
      <!--Top level Folder-->
      <div data-role="collapsible" class="Folder" data-bind="attr:{'id':$index()}">   
        <h3><span data-bind="text:name"></span></h3>

            <!--Sub Folder start-->
             <div data-bind="attr:{'id':'subtree'+$index()} ">   
           <!-- ko stopBinding: true -->                  
              <div data-bind="foreach:VM2.SubFolders" data-role="collapsible-set">
                   <div data-role="collapsible" class="SubFolder"
                   data-bind="attr{'id':$parentContext.$index}"> **This gives undefined**                               
                            <h3><span data-bind="text:name"></span></h3>
                   </div>
               </div>   
           <!--/ko-->                
             </div>
           <!--End Of Sub Folder-->
      </div>
    <!--End Of Top level Folder-->

</div>

我正在使用knockout foreach绑定动态创建jquery移动可折叠项目 访问父循环$index()时遇到问题。 我尝试了$parentContext.$index()$parentContext.$index。两者都给出了未定义的&#39;。我正在使用停止绑定,是因为它无法获得父循环索引? 以下是我的代码。

1 个答案:

答案 0 :(得分:1)

您应该替换以下行:

data-bind="attr{'id':$parentContext.$index}"> **This gives undefined**

有:

data-bind="attr{'id':$parentContext.$index()}"> **This gives undefined**

因为$ index是可观察的,就像你在第3行中所做的那样。