我一直在嘗試做複選框Checkall和UnCheckall使用訂閱和我部分成功做到這一點,但我無法找到一個解決方案時,我正在處理subscribe
。CheckAll/UncheckAll訂閱的問題?敲除
使用訂閱:
我在這裏能夠checkAll uncheckAll但是當我取消一個孩子複選框即test1
或test2
我需要我的父母複選框name
也被選中,並在下一回合,如果我檢查test1
的家長複選框應該被檢查,即保持條件兩個孩子複選框被檢查。
對於小提琴:Click Here
視圖模型:
self.selectedAllBox.subscribe(function (newValue) {
if (newValue == true) {
ko.utils.arrayForEach(self.People(), function (item) {
item.sel(true);
});
} else {
ko.utils.arrayForEach(self.People(), function (item) {
item.sel(false);
});
}
});
相同的情況下,可以使用computed
簡單的方法完全可以做到的,但由於一些性能問題,我需要使用subscribe
這是最好的方式,不會像計算的onload那樣開火。
參考:使用計算機一樣的東西是完全可以做到的檢查這個Fiddle
我試圖用個人複選框change
事件綁定,但它是一個死衚衕至今。
任何幫助表示讚賞。
他是對的。計算是這樣做的最好方法。 – 2014-11-14 18:50:41
@帕特里克那偉大的洞察力。是的,我已經嘗試訂閱兒童複選框,即事件:{更改:$ root.checkevaluate}'。在'checkevaluate'我試圖以適當的方式做我的評估,但我卡住了。 – 2014-11-14 19:48:10
@MatthewJamesDavis是的,我確實相信它是最好的,但是以性能爲代價,即如果我有'n'複選框,計算結果將會運行'n'次onload是不是。 – 2014-11-14 19:50:18