監視可能な配列の項目であるパラメーターを受け取る関数をビューモデルに追加できます。バインディングはの内部で関数を実行するdependentObservable
ため、値にアクセスするオブザーバブルは依存関係を作成します。
したがって、たとえば、Ryan Niemeyerの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'
。あなたの場合、これはあなたの観察可能な配列からのアイテムになります。
お役に立てれば。