淘汰js,访问循环旁边的观察者

时间:2015-12-16 21:46:17

标签: javascript knockout.js

考虑以下示例:

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 ?**

1 个答案:

答案 0 :(得分:1)

您可以使用context属性从父绑定中获取属性或函数,例如$root.foo,其中foo可以是函数或可观察对象。 请参阅ko网站上的文档:

  

绑定上下文是一个对象,用于保存可以从绑定中引用的数据。在应用绑定时,Knockout会自动创建和管理绑定上下文的层次结构。层次结构的根级别是指您提供给toko.applyBindings(viewModel)的viewModel参数。然后,每次使用控制流绑定(例如with或foreach)时,都会创建引用嵌套视图模型数据的子绑定上下文。   绑定上下文提供以下可在任何绑定中引用的特殊属性。   参考。 KO Binding contexts