sencha touch,sync()不会在成功后将脏标志设置为false

时间:2013-05-17 17:10:19

标签: extjs touch store

这是我的代码:

在控制器中,我在现有记录中设置了一个值:

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'}]

等等。

事实上,如果我分析商店,我会在最后一条记录(id:1)上看到属性dirty: true,但在sync()成功后它应该为false。 (?!)

有什么想法吗?

我是否必须将修改后的数据放入响应中?如:

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

TNX

1 个答案:

答案 0 :(得分:0)

sync()是一个异步函数。尝试在回调中检查您的记录:

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

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

    }
});