0
使用knockout的新3.2組件規範,我試圖創建一個組件,其中包含一個用於呈現對象集合的foreach綁定。 foreach綁定內部的對象需要訪問組件虛擬機上的屬性,但似乎在foreach循環中會丟失一次引用。Knockout 3.2組件 - 無法訪問foreach綁定中的組件viewModel root
是否有一種簡單的方法可以直接訪問其模板中組件視圖模型的根?
組件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)
到以前的方法類似的使用可用的[結合上下文]中的一個(http://knockoutjs.com/documentation/binding-context.html)屬性。在這種特殊情況下[$ parent](http://jsfiddle.net/w0vgfrbw/)或'$ root'可以工作。 – Origineil 2014-09-19 03:10:53
* facepalm *甚至不知道$父上下文存在。上面列出的整個模塊嵌套在另一個組件中,因此$ root不起作用。非常有幫助,謝謝。 – fscof 2014-09-19 14:56:32