我在 knockout js中有一个输入类型复选框,我想在选中此复选框时执行“not true”操作。像这样:
<input type="checkbox" data-bind="checked: !IsVisible"/>
但这是行不通的。
我知道我可以打电话给IsHidden并设置常用的检查绑定(bind),但是在女巫中我有一种特殊情况,我需要这种行为。
最佳答案
您可以直接在绑定(bind)中评估可观察对象,并且您的想法应该可行。
像这样:<input type="checkbox" data-bind="checked: !IsVisible()"/>
注意,但是,这失去了“可观察性”,这可能不是您想要的。
另一种方法是创建一个从IsVisible计算出的IsHidden
属性。
var ViewModel = function (model) {
var self = this;
self.IsVisible = ko.observable(model.IsVisible);
self.IsHidden = ko.computed({
read: function () {
return !self.IsVisible();
},
write: function (newValue) {
self.IsVisible(!newValue);
}
});
}
See the Fiddle