別のオブジェクト「お父さん」を参照するオブジェクト「ウォッチャー」があります。「お父さん」で何かが変わるたびに「ウォッチャー」に通知する必要があります。
お父さんの子供が変更された場合は機能しますが、お父さんの孫が変更された場合は機能しません。後者の場合、オブザーバーをトリガーさせることはできません。@eachのネストはおそらく間違っていると思いますが、これを行う方法がわかりません。
お父さんやその子孫の何かが変更されたときに、ウォッチャーに一般的な通知を送信する方法はありますか?
App.Dad = DS.Model.extend({
sons: DS.hasMany('App.Son'),
name: null
})
App.Son = DS.Model.extend({
dad: DS.belongsTo('App.Dad'),
sons: DS.hasMany('App.GrandSon'),
name: null
})
App.GrandSon = DS.Model.extend({
dad: DS.belongsTo('App.Son'),
name: null
})
App.Watcher = Ember.Object.extend({
dad: null, // will be set later
dadChanged: function(){
// Fires if a son is changed, but not
// if a grand son is changed
}.observes('dad.sons.@each.name','dad.sons.@each.sons.@each.name')
})
これを説明するjsFiddleを参照してください:http://jsfiddle.net/4kUzr/1/