我有一个Ember.Mixin
观察它的一个属性(这里bar.baz
)。
我已经扩展了这个 Mixin 并设置bar.baz
了.create()
参数,但是我的观察者没有被调用。
这是我的代码:
App.FooMixin = Ember.Mixin.create({
barBazDidChange: function() {
console.log('barBazDidChange'); // never called
}.observes("bar.baz")
});
App.Foo = Ember.Object.extend(App.FooMixin);
App.fooObject = App.Foo.create({
bar: Ember.Object.create({
baz: "ember"
})
});
以及相关的 jsfiddle:http: //jsfiddle.net/aMQmn/
我当然可以用下面的方法调用观察者init()
,但我想知道是否有更好的解决方案(或者这个解决方案是否是正确的方法):
App.FooMixin = Ember.Mixin.create({
init: function() {
this._super();
if (this.getPath('bar.baz')) {
this.notifyPropertyChange('bar.baz');
}
}
});