Foreach里面的foreach没有在淘汰赛中工作

时间:2014-04-03 13:35:46

标签: knockout.js knockout-2.0

我试图在淘汰赛中将foreach应用于foreach中,但它不能正常工作,对我来说工作正常,但对于内在的foreach来说,它是MyFMnu1 is undefined

如果我将这个内部的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([]);
};

2 个答案:

答案 0 :(得分:2)

在foreach中绑定绑定上下文是集合项,而不是根视图模型。 要在foreach绑定中访问父上下文,请使用$ parent,如下所示:

<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

答案 1 :(得分:0)

如果您有一个MyFmnu1数组作为MyFmnu数组中每个对象的属性,它将起作用。