0

描述:

我有两件事,一个复选框和输入字段。这就是我想要的。在我的视图模型中,我有两个可观察对象,一个保存复选框选中/取消选中(真或假),另一个保存输入字段值。这两个值都来自数据库,但我在这里将它们设为静态以简化操作。因此,当页面加载时,如果复选框值为 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>

http://jsfiddle.net/KGSUD/1/

我一直在玩小提琴很长一段时间,但无法弄清楚。

我会感谢你们的帮助。

4

1 回答 1

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绑定变得更简单。这是小提琴

于 2013-03-27T23:00:08.197 回答