enable binding往往作用于form elements,比如input、select和textarea等。包含enable binding的DOM元素会依照enable binding参数的真假来决定自己是否可用。
一个简单的例子如下:
html部分:
<p>
<input type="checkbox" data-bind="checked: hasCellphone" />
I have a cellphone.
</p> <p>
Your cellphone number:
<input type="text" data-bind="value: cellphoneNumber, enable: hasCellphone" />
</p>
js部分:
function MyViewModel() {
var self = this; self.cellphoneNumber = "";
self.hasCellphone = ko.observable(false);
} ko.applyBindings(new MyViewModel());
enable binding的参数可以是viewModel中的函数,也可以是任意的javascript判断语句。如果说参数是一个observable,则每当该observable变化时,UI就会立即更新相应元素的enable状态,否则,UI只会对元素的enable状态设置一次。
至于disable binding的使用方法完全可以参照enable binding,两者的效果只是刚好相反罢了。