Knockout.js 敲除JS数据绑定不计算javascript表达式

Knockout.js 敲除JS数据绑定不计算javascript表达式,knockout.js,Knockout.js,我有一组复选框,用于控制页面上一组项目的可见性。我正在尝试添加一些功能,以便在没有选中任何框时,所有项目都会显示出来 我想我的第一个问题是,我可以像下面这样在数据绑定中使用逻辑运算符吗?从这里的文档()看来,我应该能够。我试图避免为所有复选框创建一组额外的Computed。如果这是可能的,我做错了什么 <div data-bind="visible: (showStaff() || showAll())" class="procedure"> 您以错误的方式处理可观察对象。修改计算

我有一组复选框,用于控制页面上一组项目的可见性。我正在尝试添加一些功能,以便在没有选中任何框时,所有项目都会显示出来

我想我的第一个问题是,我可以像下面这样在数据绑定中使用逻辑运算符吗?从这里的文档()看来,我应该能够。我试图避免为所有复选框创建一组额外的Computed。如果这是可能的,我做错了什么

<div data-bind="visible: (showStaff() || showAll())" class="procedure">

您以错误的方式处理可观察对象。修改计算结果如下:

self.showAll = ko.computed(function () {
    var show;
    if (!self.showAP() && !self.showTR() && !self.showSR() && !self.showStaff() && !self.showNSW() && !self.showGA() && !self.showP14() && !self.showSW()) {
        show = true;
        return show;
    }
    else {
        show = false;
        return show;
    }
});
如果您想要一个可观察的值,那么应该添加()

self.showAll = ko.computed(function () {
    var show;
    if (!self.showAP() && !self.showTR() && !self.showSR() && !self.showStaff() && !self.showNSW() && !self.showGA() && !self.showP14() && !self.showSW()) {
        showAll = true;
        return show;
    }
    else {
        showAll = false;
        return show;
    }
});

如果showStaff是真的;showAP不会被评估。因为真实的东西总是真实的。我不确定你是否需要额外的父母
self.showAll = ko.computed(function () {
    var show;
    if (!self.showAP() && !self.showTR() && !self.showSR() && !self.showStaff() && !self.showNSW() && !self.showGA() && !self.showP14() && !self.showSW()) {
        show = true;
        return show;
    }
    else {
        show = false;
        return show;
    }
});
self.showAll = ko.computed(function () {
    var show;
    if (!self.showAP() && !self.showTR() && !self.showSR() && !self.showStaff() && !self.showNSW() && !self.showGA() && !self.showP14() && !self.showSW()) {
        showAll = true;
        return show;
    }
    else {
        showAll = false;
        return show;
    }
});