主要问题:
Ember Data RESTAdapter是否有willSave
或beforeSave
或beforeCreateRecord
或didCreate
方法?
背景:
我有一些数据需要我进行额外的 API调用,并在每createRecord
之前使用该调用的结果。
问题是,如果我尝试覆盖createRecord
,其中的DS.Snapshot
不允许我在保存之前更改其属性。
理想情况下,我想在 createRecord
之前拨打这个电话,但我也可以在 createRecord
之后接听。
据我所知,它还需要是适配器方法,不是模型钩子,因为我需要访问的本机对象,我不想在服务器上保存。 (即DS.Model
的{{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