传递参数以保存()

时间:2014-08-28 04:33:10

标签: ember-data

是否可以传递这样的参数?我需要传递一些不属于模型本身的信息。

myModel.save({site : 23})

2 个答案:

答案 0 :(得分:17)

You can pass options as of Ember Data 2.2。但是,您必须记住在adapterOptions属性下传递您的选项。例如,

myModel.save({
  adapterOptions: {
    site: 23
  }
});

DS.Store#findAllDS.Store#findRecordDS.Store#queryDS.Model#saveDS.Model#destroyRecord内,其中一个参数现在应该有adapterOptions。对于DS.Model#save,您可以覆盖适配器中的updateRecord

export default DS.Adapter.extend({
  updateRecord(store, type, snapshot) {
    // will now have `snapshot.adapterOptions`.
    // ...
  }
});

答案 1 :(得分:9)

如果你可以:

  • 添加一个' volatile'属性为您的模型,
  • 定义自定义模型序列化程序,并覆盖其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,这是实现目标的正确方法。