【问题标题】:Single record persistence with ember-dataember-data 的单记录持久性
【发布时间】:2012-08-15 13:50:06
【问题描述】:

在带有 ember-data 的 Ember.js(使用 1.0pre 版本)中,对数据的所有更改都保存到存储中的 defaultTransaction 中。当使用store.commit() 提交存储时,对数据的所有更改都会保存回 API(使用 RESTAdapter)。

我想要更多地控制被持久化的对象。所以现在,我一直在获取 store 和 adapter 的实例,然后调用类似 adapter.createRecord(store, type, record)updateRecord 的东西,其中 typeApp.Person 模型,record 是该模型的一个实例。

这是使用DS.RESTAdapter 的内部位,我认为这些位不应直接使用。虽然它有效,但我希望有更好的方法来获得对持久性的更多控制然后store.commit()。我的应用程序的业务逻辑和用户体验需要更好的控制。

【问题讨论】:

    标签: javascript ruby-on-rails ember.js ember-data


    【解决方案1】:
    transaction = router.get('store').transaction();
    person = transaction.createRecord(App.Person);
    
    person.set('name', 'Thanatos');
    
    transaction.commit();
    

    观看关于此的 yehuda 演示。 http://www.cloudee.com/preview/collection/4fdfec8517ee3d671800001d

    【讨论】:

    • 感谢您的回答,非常有帮助!但似乎一个事务仅对多个更改有用(如在 defaultTransaction 中默认添加所有更改)。只需进行一次更改,事务就会成为围绕看起来应该很简单的代码的附加层。我只有一个更改、创建或更新,如果我想保存/保留该单个更改,ember 应该为我将我的单个更改包装在事务中,如果 ember 认为事务对所有事情都有帮助。我可能错了。欢迎讨论!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    相关资源
    最近更新 更多