说明:
我有两件事,一个复选框和输入字段。这就是我想要的。在我的viewmodel中,我有两个observable,一个保存复选框check / uncheck(ture或false),另一个保存输入字段值。这两个值都来自数据库,但我在这里将它们作为静态来简化。因此,当页面加载并且复选框值为true时,应启用输入字段并显示值。复选框也应显示为选中状态。如果取消选中该复选框,则输入字段值应为零,并且应禁用输入字段。如果在取消选中后检查复选框,则输入字段值仍应为零。
小提琴:
data-bind="checked: boxChecked" type="checkbox" ></input>
<br/>
Result:
<input data-bind="enable: boxChecked() == true,
value: boxCheked() = true ? result : result = 0" type="text"></input>
我一直在玩这个小提琴很长一段时间但是无法弄明白。
我将非常感谢您的帮助。
答案 0 :(得分:3)
我会从视图中取出逻辑(HTML)并将其放在ViewModel中。
HTML:
<input data-bind="checked: boxChecked" type="checkbox" ></input>
<br/>
Result:
<input data-bind="enable: boxChecked, value: result" type="text"></input>
JS:
var ViewModel = function() {
var self = this;
self.boxChecked = ko.observable(true);
self.result = ko.observable('10');
self.boxChecked.subscribe(function(newValue) {
if (!newValue)
self.result("0");
});
};
订阅将设置result
,html绑定变得更简单。这是the fiddle