Компоненты 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 -->