我对数组发生了变化。我正在使用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