我对数组进行了更改。我正在使用 Sanderson 最新的数组订阅方法来捕获添加/删除更改。在此订阅中,我打算捆绑并通过网络发送我的请求。如果请求因任何原因失败,我希望能够取消对集合的任何可能更改。我已验证此订阅在更改传播之前已被命中,因此我认为会有一种方法可以说“停止不要这样做”,但我不知道如何。
作为我的例子...
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');
在检查“this”时,我确实看到了带有标准 [callback, dispose, disposeCallback, target] 的 ko.subscription 对象,但似乎没有什么相当于 STOP DON'T DO IT。
任何想法都会很有帮助。谢谢。