更新KO数组中的复选框

时间:2014-04-04 15:32:05

标签: knockout.js

任何人都可以解释为什么以下代码无效。我只是在用户点击复选框时尝试切换值,但复选框的状态永远不会改变。

当我调出值时,我可以看到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" />

1 个答案:

答案 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