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

Zac*_*ter 4 javascript ember.js

我有一个image有财产的模型.保存图像时,我不想将该属性发布到端点.我想也许我可以.setimage物业旁边的所有变化进行保存.但保存仍然发布一切.

此外,我的适配器支持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')
});
Run Code Online (Sandbox Code Playgroud)

我的控制器

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

web*_*aya 15

我认为自从Ember上的PR以来,有一种更好的方法来处理属性的排除.

import DS from 'ember-data';

export default DS.JSONSerializer.extend({
  attrs: {
    image: {serialize: false}
  }
});
Run Code Online (Sandbox Code Playgroud)

如果您有多个属性要排除上面的代码看起来更干净.另请查看DS.JSONSerializer的文档