是否可以传递这样的参数?我需要传递一些不属于模型本身的信息。
myModel.save({site : 23})
答案 0 :(得分:17)
You can pass options as of Ember Data 2.2。但是,您必须记住在adapterOptions
属性下传递您的选项。例如,
myModel.save({
adapterOptions: {
site: 23
}
});
在DS.Store#findAll
,DS.Store#findRecord
,DS.Store#query
,DS.Model#save
和DS.Model#destroyRecord
内,其中一个参数现在应该有adapterOptions
。对于DS.Model#save
,您可以覆盖适配器中的updateRecord
:
export default DS.Adapter.extend({
updateRecord(store, type, snapshot) {
// will now have `snapshot.adapterOptions`.
// ...
}
});
答案 1 :(得分:9)
如果你可以:
serializeIntoHash
方法。例如:
App.Model = DS.Model.extend({
//...
site: DS.attr('number', { serialize: false })
});
App.ModelSerializer = DS.RESTSerializer.extend({
serializeIntoHash: function(hash, type, record, options) {
this._super(hash, type, record, options);
Ember.merge(hash, {
'site': record.get('site')
});
}
});
请参阅此comment,这是实现目标的正确方法。