Obserwator nie jest wywoływany w create ()
mamEmber.Mixin
który przestrzega jednej z jego właściwości (tutajbar.baz
).
Rozszerzyłem tę Mixin i ustawiłembar.baz
w.create()
parametr, ale mój obserwator nie jest wywoływany.
Oto mój kod:
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"
})
});
I powiązane jsfiddle:http://jsfiddle.net/aMQmn/
Mogłem oczywiście zadzwonić do obserwatora winit()
jak poniżej, ale zastanawiam się, czy istnieje lepsze rozwiązanie (lub czy to rozwiązanie jest właściwym sposobem):
App.FooMixin = Ember.Mixin.create({
init: function() {
this._super();
if (this.getPath('bar.baz')) {
this.notifyPropertyChange('bar.baz');
}
}
});