以前在项目中开发时,利用knockoutjs中的visible属性来隐藏,显示div。通过给visible绑定一个表达式,发现没有效果,以为只能绑定bool值。这几天开发又遇到这个问题,所以决定一探究竟。分别写了两种绑定方式的:
<div id="testDiv">
<div>
<a data-bind="click: showHiddenFirst"href="#">Show first</a>
<div data-bind="visible: isVisibleFirst()">
bool值绑定
</div>
<div data-bind="visible:count()==1">
表达式绑定
</div>
</div>
</div>
<script type="text/javascript">
var vm = function () {
this.isVisibleFirst = ko.observable(true);
this.count = ko.observable(1);
this.showHiddenFirst = function () {
if (this.isVisibleFirst() == true) {
this.isVisibleFirst(false);
this.count(2)
}
else {
this.isVisibleFirst(true);
this.count(1)
}
};
}
ko.applyBindings(new vm(),document.getElementById("testDiv"));
</script>
经测试,两种方式都可以。