Javascript ember.js所有值的观察者

Javascript ember.js所有值的观察者,javascript,ember.js,Javascript,Ember.js,在Ember.js中,有没有一种好的方法可以添加一个观察者来观察Ember.Object子类实例上的所有更改 ie(咖啡脚本) 下面是一个实现: App=Ember.Application.create(); App.WatchedObject=Ember.Object.extend({ firstProp:null, 第二个道具:“酒吧”, init:function(){ 这个; var self=这个; Ember.keys(此).forEach(函数(键){ if(Ember.typeO

在Ember.js中,有没有一种好的方法可以添加一个观察者来观察
Ember.Object
子类实例上的所有更改

ie(咖啡脚本)


下面是一个实现:

App=Ember.Application.create();
App.WatchedObject=Ember.Object.extend({
firstProp:null,
第二个道具:“酒吧”,
init:function(){
这个;
var self=这个;
Ember.keys(此).forEach(函数(键){
if(Ember.typeOf(self.get(key))!='function'){
self.addObserver(键,函数(){
console.log(self.get(key));
});
}
}); 
}
});
App.watched=App.WatchedObject.create({
第一道具:“福”,
plop:function(){},
第三首:“远”
});
App.waved.set('firstProp','trigObserver');
App.watched.set('secondProp','doesNotTrigObserver');
App.watched.set('thirdrop','alsoTrigObserver');

如您所见,它只处理属性,不处理函数(我想这是您想要的)。

您还可以意识到,它仅适用于传递给
create()
方法的属性,而不适用于类定义中指定的属性(即使用
extend
)。

这可能会有所帮助:谢谢!但看起来那个可怜的家伙从来没有得到一个好答案。。。5个月前他问:(@Rajat还有那篇帖子中链接的文章似乎不再有效,或者Emberman的当前版本感谢他,希望Ember自己处理它,但这是一个优雅的解决方案!注意:它只观察在
create
方法中传递的属性,而不是类定义中指定的属性(使用
extend
)是的,这就是我在代码下面的评论中所说的,但似乎不清楚,我更新了。谢谢@louiscoquio
Bat = Ember.Object.extend
    name: null
    age: null

hank = Bat.create
    name: 'Hank'
    age: 2

#Something like this
hank.addObserverToAll myClass, 'handleChange'