2014-04-03 56 views
0

我想在淘汰赛中的foreach中应用foreach,但它不工作外部foreach对我来说工作正常,但对于内部foreach是MyFMnu1 is undefinedForeach里面的foreach没有在淘汰赛中工作

如果我把这个内部的foreach外面,那么它工作,但为什么它不在foreach内工作。

<div data-bind="foreach: MyFmnu"> 
     <!-- ko if: key === 'ASM' --> 
      <input type="checkbox" value="ASM" class="styled" 
       name="fldMenuCheck_Acc1" id="fldMenuCheck_Acc1" 
       style="width:10%;"/> 
     <!-- /ko --> 
     <div data-bind="foreach: MyFmnu1"> 
      <!-- ko if: key === 'ASMS' --> 
       <input type="checkbox" value="ASMS" class="styled" 
        name="fldMenuCheck_Acc12" id="fldMenuCheck_Acc12" 
        style="width:10%;"/> 
      <!-- /ko --> 
     </div> 
</div> 

我的视图模型

var AccountsViewModel = function() { 

    var self = this; 

    self.myfavmenu = ko.observable(); 
    self.PerLzdmenuList = ko.observable(); 
    self.MyPerlzdMenus = ko.observable(); 

    self.myfavmenuOtherCount = ko.observable(); 
    self.MyFmnu = ko.observableArray([]); 
}; 
+0

您可以将您的视图模型? – John

+3

显示完整的HTML标记。我在这里只看到1个'foreach'。 – haim770

+1

请把小提琴 – DevelopmentIsMyPassion

回答

0

内部foreach绑定绑定上下文是收集项目,而不是根视图模型。 要访问父上下文中的foreach绑定使用$父,是这样的:

<div data-bind="foreach: MyFmnu"> 
     <!-- ko if: key === 'ASM' --> 
      <input type="checkbox" value="ASM" class="styled" 
       name="fldMenuCheck_Acc1" id="fldMenuCheck_Acc1" 
       style="width:10%;"/> 
     <!-- /ko --> 
     <div data-bind="foreach: $parent.MyFmnu1"> 
      <!-- ko if: key === 'ASMS' --> 
       <input type="checkbox" value="ASMS" class="styled" 
        name="fldMenuCheck_Acc12" id="fldMenuCheck_Acc12" 
        style="width:10%;"/> 
      <!-- /ko --> 
     </div> 
</div> 

更多的信息在这里:http://knockoutjs.com/documentation/binding-context.html

+0

它适合我。谢谢,但有时候会有大量数据在循环中挂起。 –

0

如果你有MyFmnu1阵列作为MyFmnu阵列中每个对象的属性,它会工作。