2014-09-24 60 views

回答

3

是的,你絕對可以啓用基於兩個屬性的複選框。

如果這是你的HTML:

<input type="checkbox" data-bind="enable: prop1() || prop2()" /> 

這是您的視圖模型:

var viewModel = { 
     prop1 : ko.observable(false), 
     prop2 : ko.observable(true) 
    }; 

ko.applyBindings(viewModel); 

this jsfiddle,和玩設定prop1prop2truefalse

2

你可以使用ko.computed

this.enabled = ko.computed(function() { 
    // get observable value 
    return this.prop1() || this.prop2(); 
}, this); 

data-bind="enable: enabled, 
+1

如果OP使用observables(根據'prop1 || prop2'建議不在視圖代碼中工作),那麼該計算的observable [將總是計算爲true](http://jsfiddle.net/qja0fh13/ 1 /)。 OP需要在他們的視圖代碼中添加括號,類似於計算中需要的括號。 – 2014-09-24 19:31:57

+0

@DavidSherret好點;忘了那個 – 2014-09-24 19:33:49