使用Ember-Data保存时排除模型属性

时间:2014-01-31 04:48:05

标签: javascript ember.js

我有一个具有image属性的模型。保存图像时,我不想将该属性发布到端点。我想也许我可以.set image属性旁边的所有变化然后保存。但保存仍然发布所有内容。

此外,我的适配器支持PATCH,因此我可以成功保存部分模型。

我的模特

App.Photo = DS.Model.extend({
  title: attr(),
  description: attr(),
  image: attr(),
  authors: hasMany('author'),
  imageURL: function() {
    return document.location.origin + '/media/' + this.get('image');
  }.property('image'),
  created: attr('date')
});

我的控制器

App.PhotoController = Ember.ArrayController.extend({
  actions: {
    save: function() {
      this.get('model').save().then(function(success) {
        self.transitionToRoute('photos').then(function() {
        });
      });
    }
  }
});

1 个答案:

答案 0 :(得分:4)

您可以覆盖serializeAttribute上的Serializer功能:

App.PhotoSerializer = DS.DjangoRESTSerializer.extend({
    serializeAttribute: function(record, json, key, attribute) {
        if (attribute.name !== 'image') {
            this._super(record, json, key, attribute);
        }
    }
});