Ember REST Adapter,保存前更改记录

时间:2015-07-12 02:59:04

标签: ember.js ember-data

主要问题

Ember Data RESTAdapter是否有willSavebeforeSavebeforeCreateRecorddidCreate方法?

背景

我有一些数据需要我进行额外的 API调用,并在每createRecord之前使用该调用的结果。

问题是,如果我尝试覆盖createRecord,其中的DS.Snapshot不允许我在保存之前更改其属性。

理想情况下,我想在 createRecord之前拨打这个电话,但我也可以在 createRecord之后接听

据我所知,它还需要是适配器方法,不是模型钩子,因为我需要访问的本机对象,我不想在服务器上保存。 (即DS.Model的{​​{1}}返回服务器已存储的数据

1 个答案:

答案 0 :(得分:0)

我认为您不能指望能够在createRecord之前做一些事情,因为如果我们想将数据推送到商店,我们会鼓励他们直接使用它。例如,如果要在操作中创建记录,则执行以下操作:

this.store.createRecord('bank', {
  name: this.get('bankForm.name'),
  image: this.get('bankForm.image')
});

但是,您可以覆盖在保存时调用的RESTSerializers serialize方法,以准备要发送的对象。然后,您可以将数据更改为适合您的用例的数据。 http://emberjs.com/api/data/classes/DS.RESTSerializer.html#toc_customizing-an-app-wide-serializer

如果您正在考虑在保存后向对象添加内容,那么当然还有一个等效的normalize方法可以覆盖。 http://emberjs.com/api/data/classes/DS.RESTSerializer.html#method_normalize