2015-05-27 60 views
0

孩子進入我有兩個型號:灰燼數據的removeObject還從Ember的商店

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'), 
}); 

我想從User未分配一些Studies
當用戶按下在視圖中的未分配按鈕時,有在控制器內部的動作和運行這個代碼:

actions: { 
//... 
unassign: function(study){ 
    this.get('user').get('studies').removeObject(study); 
    this.get('user').save(); 
} 
//... 
} 

這消除從users.studies列表中studyId,但它也完全消除該study來自Ember的商店。

我怎樣才能從user.studies取消分配study,但保持studies表不受影響。

我使用:

Ember VERSION = '1.5.1'; 
Ember-Data Version = 1.0.0-beta.6 

回答

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(); 
    } 
}