次のケースでは、コードの重複の問題があります。私のページには、リンクをクリックして表示/非表示にする必要があるブロックがたくさんあります。
<div>
<a data-bind="click: showHiddenFirst, visible: isVisibleFirst"href="#">Show first</a>
<div data-bind="visible: !isVisibleFirst()" style="display:none">
hidden content first
</div>
</div>
<div>
<a data-bind="click: showHiddenSecond, visible: isVisibleSecond"href="#">Show second</a>
<div data-bind="visible: !isVisibleSecond()" style="display:none">
hidden content second
</div>
</div>
そして私のJS
var vm = function(){
this.isVisibleFirst = ko.observable(true);
this.showHiddenFirst = function(){
this.isVisibleFirst(false)
};
this.isVisibleSecond = ko.observable(true);
this.showHiddenSecond = function(){
this.isVisibleSecond(false)
};
};
ko.applyBindings(new vm());
ここにjsfiddleの例がありますhttp://jsfiddle.net/sstude/brCT9/2/
問題は、このすべての表示/可視重複を回避する方法です。たぶん、隠しブロックまたはsmthのIDを配置するカスタムバインディングが必要です。そうしないと?提案できるパターンはありますか?