5

残り火オブジェクトを作成し、それを任意の未知数のアレイコントローラーに追加するとします。オブジェクトを破棄して、すべてのアレイコントローラーに通知を受け取り、オブジェクトを削除する簡単な方法はありますか?

http://jsfiddle.net/FcsRP/

Ember.CoreObjectからのdestroyは、オブジェクトが破棄されたことをコレクションに通知していないようです。または、コレクションがオブジェクトを削除していません。それらが意図されているかどうかさえわかりません。

4

1 に答える 1

7

私が考えることができる最も簡単な方法は、オブジェクトの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)
于 2012-05-05T02:40:27.900 に答える