javascript - 在 Ember.js 中销毁对象

标签 javascript ember.js destroy

假设我创建了一个 ember 对象,然后将它添加到任意未知数量的数组 Controller 中。有没有一种简单的方法可以销毁对象,以便通知所有阵列 Controller 并将其删除?

http://jsfiddle.net/FcsRP/

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/

相关文章:

ember.js - 你如何将 ember cli 中的 base/root url 从默认 root '/' 更改为 '/home' ?

javascript - Ember.js/Handlebars.js 将条件类属性绑定(bind)到 {{#link-to}} 助手

ruby-on-rails - Rails - 保存或删除后对象未刷新

perl - 在 Perl 中检测全局破坏

javascript - JavaScript 中的展开运算符

javascript - 将用户输入的字符串转换为正则表达式

javascript - 如何禁用 dijit.form.NumberSpinner 小部件上的鼠标滚轮事件?

javascript - 一步减少和排序对象数组

ember.js - 在表达式中使用表达式的 Handlebars

ruby-on-rails-3 - 每当单击模型销毁链接时,Rails session 就会被销毁