Knockout checked属性无法按预期工作

时间:2014-03-21 08:11:35

标签: javascript knockout.js

您好我正在尝试使用带有淘汰赛的复选框,而我似乎遇到的问题是这里的行为是我的代码:

postModel = ko.observable('false');   
<input type="checkbox" data-bind="checked:postModel.closeSession" id="dummid" checked>
<span data-bind="text: postModel.closeSession"></span>

当我运行我的应用程序时,这就是我得到的:

enter image description here

这是我期望获得的。但是当我点击复选框时,我希望它将observables值更改为true,但这就是我得到的:

enter image description here

另一次点击,似乎observable将其值更改为true:

enter image description here

如果我再次点击,则observable再次为false。

我的期望是当检查checbox时,observable设置为true,如果未选中,则设置为false。

我做错了什么,或者这是被检查的财产应该如何运作?

1 个答案:

答案 0 :(得分:3)

如果您在视图模型/标记上定义属性,如下所示,它将按预期工作。

<强> JS

var ViewModel = function()
{
     self = this;
     self.closeSession = ko.observable(true);
}

var viewModel = new ViewModel();
ko.applyBindings(viewModel);

<强>标记

<input type="checkbox" data-bind="checked:closeSession" id="dummid" checked>
<span data-bind="text: closeSession"></span>

<强>的jsfiddle

选中下方小提示框,查看文本更新为正确值。

http://jsfiddle.net/LnwQt/1/