2012-04-29 20 views
5

immagino creare un oggetto brace, quindi aggiungere ad un numero imprecisato arbitrario di controller di array. C'è un modo semplice per distruggere l'oggetto in modo che tutti i controller dell'array vengano avvisati e rimossi?Distruggere gli oggetti in Ember.js

http://jsfiddle.net/FcsRP/

distruggere da Ember.CoreObject non sembra per notificare le collezioni che i loro oggetti sono state distrutte, o le collezioni non rimuovere i loro oggetti. Non sono nemmeno sicuro se lo siano o no.

risposta

7

Il modo più semplice a cui posso pensare è aggiungere un osservatore sulla proprietà isDestroyed dell'oggetto. In questo modo quando si distrugge qualcosa e tale proprietà diventa true è possibile eseguire qualsiasi codice necessario.

Vai a questa jsfiddle: http://jsfiddle.net/ud3323/FSCyF/

Codice:

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) 
+0

Ciao Roy, non so perché non ho accettato la tua risposta, al momento, ma e 'sicuramente corretto! Grazie! – user1158559