Javascript 在敲除js上执行非真检查绑定?
我在knockout js中有一个输入类型复选框,当选中该复选框时,我不想执行“not true”操作。大概是这样的:Javascript 在敲除js上执行非真检查绑定?,javascript,jquery,knockout.js,checked,Javascript,Jquery,Knockout.js,Checked,我在knockout js中有一个输入类型复选框,当选中该复选框时,我不想执行“not true”操作。大概是这样的: <input type="checkbox" data-bind="checked: !IsVisible"/> 但这是行不通的。 我知道我可以调用IsHidden并设置公共检查绑定,但我有一个特殊的情况,我需要这种行为。您可以直接在绑定中评估可观察到的内容,您的想法应该有效 像这样: 然而,请注意,这会失去“可观察性”,这可能不是您想要的 另一种方法是创建
<input type="checkbox" data-bind="checked: !IsVisible"/>
但这是行不通的。
我知道我可以调用IsHidden并设置公共检查绑定,但我有一个特殊的情况,我需要这种行为。您可以直接在绑定中评估可观察到的内容,您的想法应该有效 像这样:
然而,请注意,这会失去“可观察性”,这可能不是您想要的
另一种方法是创建一个由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);
}
});
}
这是因为有!你正在对可观察的物体执行一个函数。使用以下命令:
<input type="checkbox" data-bind="checked: !IsVisible()"/>
定义自定义绑定。请参阅“”部分,该部分与您要求的内容非常非常相似。基本上,类似的方法应该可以工作(注意:未测试): 然后你可以做:
data-bind="notChecked: IsVisible"
确切地说,我不想失去可观察性啊,只要阅读前面的答案就可以了。为了进行一个有趣的练习,我发布了一个问答问题,演示了一个通用的“not”绑定,它允许您像这样编写html:
()
data-bind="notChecked: IsVisible"