您好,我正在尝试使用带 knockout 功能的复选框,但我的行为似乎有问题,这是我的代码:
postModel = ko.observable('false');
<input type="checkbox" data-bind="checked:postModel.closeSession" id="dummid" checked>
<span data-bind="text: postModel.closeSession"></span>
当我运行我的应用程序时,这是我得到的:
这是我期望得到的。但是当我单击复选框时,我希望它会将可观察值更改为 true,但这是我得到的:
再一次点击,似乎 observable 将其值更改为 true:
如果我再次点击,可观察值再次为 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 中的框以查看更新为正确值的文本。
关于javascript - Knockout 检查的属性不能按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22553412/