2015-05-27 2 views
0

У меня есть две модели:removeObject Ember-данные на отношениях hasMany также удаляет запись ребенка из магазина 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'), 
}); 

Я хочу ООН-присваивают некоторые Studies из User.
Когда пользователь нажимает на кнопку снимите присвойте в представлении, есть действие внутри контроллера, который работает этот код:

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

Это удаляет studyId из users.studies списка, но он также удаляет эту study полностью из магазина Ember.

Как я могу просто не назначать study из user.studies, но не оставлять таблицу studies без изменений.

Я использую:

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

ответ

0

Nevermind, я решить эту проблему путем вычисления списка исследований и установить его. (NOT CALLING 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(); 
    } 
} 
Смежные вопросы