【发布时间】:2013-02-18 09:01:30
【问题描述】:
在下一个案例中,我遇到了代码重复问题。在我的页面上,我需要通过单击链接来显示/隐藏很多块:
<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/
问题是如何避免所有这些显示/可见的重复?也许我需要一些自定义绑定,在其中放置隐藏块的 id 或 smth。别的?你有什么可以推荐的模式吗?
【问题讨论】:
标签: javascript design-patterns knockout.js dry