配列に変更が生じました。私は、Sandersonの最新の配列サブスクリプションメソッドを使用して、追加/削除の変更をキャッチしています。このサブスクリプションでは、バンドルして私のリクエストを電信線経由で送るつもりです。何らかの理由でリクエストが失敗した場合は、コレクションの変更を取り消すことができます。変更が反映される前にこのサブスクリプションがヒットしていることを確認しましたので、「停止しない」と言う方法があると仮定しますが、どのように把握できません。私の例としてノックアウト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');
検査すると「これは」私は[、コールバック処分、disposeCallback、ターゲット]規格にko.subscriptionオブジェクトを参照してくださいが、何もDONを停止するために達するように思わないでください'それをする。
どのような考えも非常に役に立ちます。ありがとう。
あなたのobservableArrayがはい、(追加または削除された項目)を変更されたというメソッドを、サブスクライブ?それが本当であれば、追加/削除の2つのメソッドを追加し、それらの内部で検証を行う必要がありますか? – alexmac