我有一組複選框控制我的頁面上的一組項目的可見性。我正在嘗試添加一些功能,以便在沒有選中任何框時顯示所有項目。Knockout JS數據綁定不評估JavaScript表達
我想我的第一個問題是,我可以在我的data-bind中使用邏輯運算符嗎?從這裏的文檔(http://knockoutjs.com/documentation/binding-syntax.html),似乎我應該能夠。我試圖避免必須爲所有複選框創建一組額外的計算。如果這是可能的,我做錯了什麼?
<div data-bind="visible: (showStaff() || showAll())" class="procedure">
當我看在Chrome中KnockoutJS檢查員,看來好像只有「showStaff()」正被評估,表達的不其餘部分。因爲我知道showStaff()和showAP()都起作用了,所以我也嘗試了以下內容。它仍然只評估上半場。
<div data-bind="visible: (showStaff() || showAP())" class="procedure">
這裏是我的JS:
var self = this;
self.showAP = ko.observable(true);
self.showTR = ko.observable(true);
self.showSR = ko.observable(true);
self.showStaff = ko.observable(true);
self.showNSW = ko.observable(true);
self.showGA = ko.observable(true);
self.showP14 = ko.observable(true);
self.showSW = ko.observable(true);
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爲true; showAP將不會被評估。因爲真|| *某事*總是如此。 – Damien
我不確定你需要多餘的父母http://jsfiddle.net/GcTCh/ – BillPull