假设我创建了一个 ember 对象,然后将它添加到任意未知数量的数组 Controller 中。有没有一种简单的方法可以销毁对象,以便通知所有阵列 Controller 并将其删除?
destroy from Ember.CoreObject 似乎没有通知集合它们的对象已被销毁,或者集合没有删除它们的对象。我什至不确定它们是否有意。
最佳答案
我能想到的最简单的方法是在对象的 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('content.@each.isDestroyed')
});
a2 = Ember.ArrayController.create({
content: [],
destroyedObj: function() {
alert('destroyed obj observer in a2');
}.observes('content.@each.isDestroyed')
});
a1.pushObject(obj);
a1.pushObject(obj);
a2.pushObject(obj);
obj.destroy()
alert(a1.get('content').length)
关于javascript - 在 Ember.js 中销毁对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376633/