Ember.js observateur pour toutes les valeurs

Dans Ember.js, y at-il un bon moyen d'ajouter un observateur qui observera tous les changements sur une instance d'une sous-classe d' Ember.Object ?

C'est-à-dire (coffeescript)

 Bat = Ember.Object.extend name: null age: null hank = Bat.create name: 'Hank' age: 2 #Something like this hank.addObserverToAll myClass, 'handleChange' 

Voici une implémentation: http://jsfiddle.net/Sly7/GMwCu/

 App = Ember.Application.create(); App.WatchedObject = Ember.Object.extend({ firstProp: null, secondProp: "bar", init: function(){ this._super(); var self = this; Ember.keys(this).forEach(function(key){ if(Ember.typeOf(self.get(key)) !== 'function'){ self.addObserver(key, function(){ console.log(self.get(key)); }); } }); } }); App.watched = App.WatchedObject.create({ firstProp:"foo", plop: function(){}, thirdProp: 'far' }); App.watched.set('firstProp', 'trigObserver'); App.watched.set('secondProp', 'doesNotTrigObserver'); App.watched.set('thirdProp', 'alsoTrigObserver'); 

Comme vous pouvez le voir, il gère uniquement les propriétés, et non les fonctions (je pense que c'est ce que vous voulez).
Vous pouvez également réaliser que cela fonctionne uniquement pour les propriétés transmises à la méthode create() , et non celles spécifiées dans la définition de classe (c'est-à-dire en utilisant extend ).