Ember.Mixin
そのプロパティの 1 つを観察する があります (こちら) 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');
}
}
});