即使我的数据被保存,为什么isDirty()总是返回true?

时间:2013-11-20 21:31:17

标签: javascript ember.js local-storage

查看此代码,这是我的模型:

App.Partita = DS.Model.extend({
    data: DS.attr('string'),
    ora: DS.attr('string'),
    evento: DS.attr('string'),
    segno: DS.attr('string'),
    quota: DS.attr('number'),
    vinto: DS.attr('boolean', false),
    giocata: DS.attr('number'),
    vincita: DS.attr('number'),
    cassa: DS.attr('number'),
    remove: DS.attr('boolean', false),

    remover: function () {
        this.deleteRecord();
    this.save();
    }.observes('remove', true),

    vintoChange: function () {
       console.log(this);
       console.log(this.get('isDirty'));
       if(!this.get('isDirty'))
    this.save();
    }.observes('vinto')

});

我正在使用localstorage适配器获取数据:

App.LSAdapter = DS.LSAdapter.extend({
namespace: 'app_namespace'
});
App.ApplicationAdapter = DS.LSAdapter;

我不知道为什么但是当触发函数“vintoChange”时,我总是得到数据是脏的,即使它之前已经保存了

.get('model').save();

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

你确定它在节省吗?您实际上并未验证它已保存。我敢打赌服务器端你对发送的数据感到满意,但是客户端的ember数据对从服务器返回的数据造成了错误。

var savePromise = this.save();

savePromise.then(
   function(){ alert('saved'); }, 
   function(){ alert('failed to save'); }
 );