1

ここに私のコードがあります:

コントローラーで、既存のレコードに値を設定します。

this.record.set('description', 'test');        
this.getFlightsList().getStore().sync();

そして、sync() を明示的に呼び出します。1つのオブジェクトでサーバーへの正しい呼び出しを見ることができます

{id: 1, description: 'test'} 

そして正しい応答:

{"message":"success","data":[],"returnCode":0,"success":true}

しかし、別のレコードを編集しようとすると、毎回、最後に変更されたレコードも送信されるため、現在と最後のレコードの 2 つの異なるレコードを持つオブジェクトが送信されます。

   [ {id: 1, description: 'test'}, {id: 2, description: 'test2'}]

等々。

実際、ストアを分析するとdirty: true、最後のレコード (id:1) にプロパティが表示されますが、sync() が成功した後は false になるはずです。(?!)

何か案は?

変更されたデータを応答に入れる必要があるのでしょうか? そのような:

{"message":"success","data":[{id:1, description:'test'}],"returnCode":0,"success":true}

TNX

4

1 に答える 1

0

sync() は非同期関数です。コールバックでレコードをチェックしてみてください:

this.getFlightsList().getStore().sync({
    callback: function (batch) {

        console.log(batch.operations);// your sync'ed records 

    }
});
于 2014-01-28T01:35:13.030 に答える