考虑以下示例:
var something = ko.observableArray([{name: bob}, {name: sally}]);
<div data-bind="foreach: something"></div>
在div
内,我可以执行以下操作:<p data-bind="text: name"></p>
但是如果我有另一个ko.observerableArray
:
var another = ko.observableArray([{age: 22}, {age: 33}]);
<div data-bind="foreach: something">
<p data-bind="text: name"> </p>
// How do I access another? When I do:
<div data-bind="foreach: another">
<p data-bind="age"> </p>
</div>
// I get, another is not defined
</div>
如何在ko.observableArray
的第一个循环中访问第二个ko.observableArray
?**
答案 0 :(得分:1)
您可以使用context属性从父绑定中获取属性或函数,例如$root.foo
,其中foo可以是函数或可观察对象。
请参阅ko网站上的文档:
绑定上下文是一个对象,用于保存可以从绑定中引用的数据。在应用绑定时,Knockout会自动创建和管理绑定上下文的层次结构。层次结构的根级别是指您提供给toko.applyBindings(viewModel)的viewModel参数。然后,每次使用控制流绑定(例如with或foreach)时,都会创建引用嵌套视图模型数据的子绑定上下文。 绑定上下文提供以下可在任何绑定中引用的特殊属性。 参考。 KO Binding contexts