Компоненты Knockout 3.2 - невозможно получить доступ к корню компонента ViewModel внутри привязки foreach

Используя новую спецификацию компонента knockout 3.2, я пытаюсь создать компонент с привязкой foreach внутри него, который визуализирует коллекцию объектов. Объекты внутри привязки foreach должны иметь доступ к атрибутам на виртуальной машине компонента, но, похоже, однажды теряют эту ссылку в цикле foreach.

Есть ли простой способ прямого доступа к корню модели представления компонента внутри его шаблона?

Компонент ВМ:

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 ответ

Решение

+ Изменить displayLimit() в $parent.displayLimit(),

Компонент шаблона:

<!-- ko foreach: companies() -->
    <li data-bind="visible: $index() < $parent.displayLimit()">
       ...more bindings...
    </li>
<!-- /ko -->
Другие вопросы по тегам