您可以添加一個函數到您的視圖模型,該模型需要一個參數,該參數是可觀察數組中的項目。該綁定將運行dependentObservable
中的函數,因此任何具有訪問值的可觀察項都將創建一個依賴項。
因此,舉例來說,從Ryan Niemeyer's jsFiddle,你可以有以下標記:
type "one", "two", or "three": <input data-bind="value: text" />
<hr />
<ul data-bind="template: { name: 'itemTmpl', foreach: items }"></ul>
<script id="itemTmpl" type="text/html">
<li data-bind="text: name, visible: viewModel.shouldThisBeVisible(name)"></li>
</script>
。與視圖模型:
var viewModel = {
text: ko.observable("one"),
items: [{name: "one"}, {name: "two"}, {name: "three"}],
};
viewModel.shouldThisBeVisible = function(name) {
return this.text() === name;
}.bind(viewModel);
ko.applyBindings(viewModel);
關鍵位是函數帶有參數'name'
。在你的情況下,這將是你可觀察數組中的一個項目。
希望這會有所幫助。