最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Destroying objects in Ember.js - Stack Overflow

programmeradmin2浏览0评论

Imagine I create an ember object, then add it to an arbitrary unknown number of array controllers. Is there a simple way of destroying the object so that all the array controllers get notified and remove it?

/

destroy from Ember.CoreObject doesn't seem to notify the collections that their objects have been destroyed, or the collections don't remove their objects. I'm not even sure if they're meant to or not.

Imagine I create an ember object, then add it to an arbitrary unknown number of array controllers. Is there a simple way of destroying the object so that all the array controllers get notified and remove it?

http://jsfiddle/FcsRP/

destroy from Ember.CoreObject doesn't seem to notify the collections that their objects have been destroyed, or the collections don't remove their objects. I'm not even sure if they're meant to or not.

Share Improve this question edited May 10, 2012 at 21:35 mattvonb 1901 silver badge5 bronze badges asked Apr 29, 2012 at 22:39 user1158559user1158559 1,9531 gold badge18 silver badges24 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 7

The easiest way that I can think of is adding an observer on the object's isDestroyed property. That way when you destroy something and that property bees true you can run whatever code you need to.

See this jsfiddle: http://jsfiddle/ud3323/FSCyF/

Code:

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)

  1. 暂无评论