Knockout 3.2组件 - 无法在foreach绑定中访问组件viewModel root

时间:2014-09-18 22:06:13

标签: data-binding knockout.js knockout-components

使用淘汰赛的新3.2组件规范,我试图在其中创建一个带有foreach绑定的组件,该组件呈现一组对象。 foreach绑定中的对象需要访问组件VM上的属性,但似乎在foreach循环中松开了该引用。

是否有一种简单的方法可以在其模板中直接访问组件的视图模型的根目录?

组件VM:

function RelatedCompaniesViewModel(params) {
    var self = this;

    self.companies = params.companies;
    self.displayLimit = ko.observable(3);

} 

组件模板:

<!-- ko foreach: companies() -->
    <li data-bind="visible: $index() < displayLimit()">
       ...more bindings...
    </li>
<!-- /ko -->

(returns a "displayLimit is not defined" error)  

1 个答案:

答案 0 :(得分:3)

displayLimit()更改为$parent.displayLimit()

组件模板:

<!-- ko foreach: companies() -->
    <li data-bind="visible: $index() < $parent.displayLimit()">
       ...more bindings...
    </li>
<!-- /ko -->