Уничтожение объектов в Ember.js

Представьте, что я создаю объект Ember, а затем добавляю его к произвольному неизвестному количеству контроллеров массива. Есть ли простой способ уничтожить объект, чтобы все контроллеры массива получили уведомление и удалили его?

http://jsfiddle.net/FcsRP/

уничтожить из Ember.CoreObject, похоже, не уведомляет коллекции о том, что их объекты были уничтожены, или коллекции не удаляют свои объекты. Я даже не уверен, предназначены они для этого или нет.


person user1158559    schedule 29.04.2012    source источник


Ответы (1)


Самый простой способ, который я могу придумать, это добавить наблюдателя к свойству isDestroyed объекта. Таким образом, когда вы что-то уничтожаете и это свойство становится true, вы можете запускать любой код, который вам нужен.

См. этот jsfiddle: http://jsfiddle.net/ud3323/FSCyF/

Код:

obj = Ember.Object.create({});

a1 = Ember.ArrayController.create({
    content: [],
    destroyedObj: function() {
        alert('destroyed obj observer in a1');
  }.observes('[email protected]')
});
a2 = Ember.ArrayController.create({
    content: [],
    destroyedObj: function() {
        alert('destroyed obj observer in a2');
  }.observes('[email protected]')
});

a1.pushObject(obj);
a1.pushObject(obj);
a2.pushObject(obj);

obj.destroy()

alert(a1.get('content').length)
person Roy Daniels    schedule 05.05.2012
comment
Привет, Рой, не знаю, почему я тогда не принял твой ответ, но он определенно правильный! Спасибо! - person user1158559; 16.11.2012