我试图在淘汰赛中将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([]);
};
答案 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
数组中每个对象的属性,它将起作用。