任何人都可以解释为什么以下代码无效。我只是在用户点击复选框时尝试切换值,但复选框的状态永远不会改变。
当我调出值时,我可以看到val()的原始值 - 我切换值,然后我可以看到新值 - 但我的复选框没有更新,它似乎是锁定。
表单上有多个复选框。
self.val = ko.observable();
self.updateCheckboxVal = function () {
return my.Update.updateCheckboxVal({ "id": self.logpropid(), "checkval": self.val() });
};
我的HTML代码:
<input data-bind="checked:val,click:function(){ updateCheckboxVal() }" type="checkbox" />
答案 0 :(得分:1)
将检查状态绑定到javascript中的值所需的唯一代码是:
function MyViewModel()
{
self.val = ko.observable();
self.val.subscribe(function(newValue)
{
// Update Database
});
}
ko.applyBindings(new MyViewModel());
您的HTML应如下所示:
<input type="checkbox" data-bind="checked: val" />
修改强>
添加了订阅代码,以便您可以更新数据库。 以下是关于订阅的淘汰文档:http://knockoutjs.com/documentation/observables.html#explicitly-subscribing-to-observables