javascript - Knockout 检查的属性不能按预期工作

标签 javascript knockout.js

您好,我正在尝试使用带 knockout 功能的复选框,但我的行为似乎有问题,这是我的代码:

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

这是我期望得到的。但是当我单击复选框时,我希望它会将可观察值更改为 true,但这是我得到的:

enter image description here

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

enter image description here

如果我再次点击,可观察值再次为 false。

我的期望是,当复选框被选中时,observable 被设置为 true,而当未被选中时,它被设置为 false。

我是不是做错了什么,或者这就是检查属性的工作方式?

最佳答案

如果您按如下方式在 View 模型/标记上定义属性,它将按预期工作。

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

选中下方 fiddle 中的框以查看更新为正确值的文本。

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

关于javascript - Knockout 检查的属性不能按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22553412/

相关文章:

javascript - Ko模型持久化

jquery - 当我使用动态 html 两次应用绑定(bind)时, knockout 变得疯狂

javascript - 在已插值的字符串中以 Angular 插值变量

javascript - 我从哪里获得 http ://jsfiddle.net/jrweinb/MQ6VT/中提到的 javascript uri css

javascript - setTimeout 不调用函数 javascript

javascript - 如何在尚未评估变量的情况下将变量传递给自定义组件?

knockout.js - knockout js中多选的自定义绑定(bind)

javascript - 包含的 javascript 文件中的 jquery

javascript - KnockoutJS 强制计算的 Observable 重新计算

knockout.js - 如何在 ViewModel Knockout 中调用函数