0

我有一个简单的 ember-data 模型(rev 12 -master 截至 2013 年 4 月 21 日)

App.Foo = DS.Model.extend({
    name: DS.attr('string')
}).reopenClass({
    add: function(json) {
        //call create record but don't commit it
        var store = DS.get('defaultStore');
        store.createRecord(App.Foo, json);
    }
});

在我的应用程序中的某个时刻,我需要从商店中删除一个项目,所以我尝试了通常的方法

var foo = store.find(App.Foo, 1);
foo.deleteRecord();

但是因为记录没有完全加载(服务器端)我得到了错误

未捕获的错误:尝试deleteRecord在 rootState.loading 状态下处理事件。未定义调用

如果我打算以这种方式使用 ember-data,我该如何“伪造”提交或将记录标记为手动加载?

4

1 回答 1

4

如果我没记错的话,你可以这样做:

var foo = store.find(App.Foo, 1);
foo.transaction.rollback();

这样记录将不再在提交时保存。

于 2013-04-23T18:40:42.087 回答