我對數組發生了變化。我正在使用Sanderson的最新數組訂閱方法來捕獲添加/刪除更改。在此訂閱中,我打算通過電匯捆綁併發送我的請求。如果請求因任何原因失敗,我希望能夠取消對集合的任何可能更改。我已經證實,這個訂閱是在變化傳播之前被擊中的,所以我認爲會有一種說法「停止不做」的方式,但我無法弄清楚。如何取消對具有Knockout 3.0的可觀察數組的更改?
作爲我的榜樣......
self.SourceData = ko.observableArray(data);
self.SourceData.subscribe(function(changes) {
var isAllGood = true;
ko.utils.arrayForEach(changes, function(ch) {
if (ch.value == doesNotMeetMyCondition) isAllGood = false;
});
if (!isAllGood) <STOP DON'T DO IT>
}, null, 'arrayChange');
當檢查「這個」我看到的標準的ko.subscription對象[回調,處置,disposeCallback,目標]但似乎沒有達到STOP DON '做吧。
任何想法都會很有幫助。謝謝。
您訂閱方法調用,當你observableArray已經改變(增加或刪除的項目),是嗎?如果它是真的,也許你應該添加兩個方法添加/刪除,並在其中進行驗證? – alexmac