hasMany关系上的Ember-data removeObject也会从Ember的商店中删除子条目

时间:2015-05-27 08:31:01

标签: ember.js ember-data

我有两种模式:

wrong.jsp

我想从App.User = DS.Model.extend({ firstName: DS.attr('string'), lastName: DS.attr('string'), phoneNumber: DS.attr('string'), studies: DS.hasMany('study', {async: true}) }); App.Study = DS.Model.extend({ name: DS.attr('string'), description: DS.attr('string'), }); 取消分配一些Studies 当用户按下视图中的取消分配按钮时,控制器内部会有一个操作此代码的操作:

User

这会从actions: { //... unassign: function(study){ this.get('user').get('studies').removeObject(study); this.get('user').save(); } //... } 列表中删除studyId,但它也会从Ember商店中删除users.studies

如何从study取消分配study,但保持user.studies表不受影响。

我正在使用:

studies

1 个答案:

答案 0 :(得分:0)

没关系,我通过计算研究列表并设置它来克服这个问题。 (不要调用removeObject)。行间的一些事情:

actions: {

  unassing: function() {
    var newUserStudies = Ember.A();
    this.get('studies').forEach(function(study) {
       if (study.get('selected')) { //selected
          newUserStudies.push(study);
       } 
    });
    this.get('user').set('studies', newUserStudies);
    this.get('user').save();
  }
}