我有一个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"
})
});?
Run Code Online (Sandbox Code Playgroud)
和相关的jsfiddle:http://jsfiddle.net/aMQmn/
我当然可以在init()
下面的方法中调用观察者,但我想知道是否有更好的解决方案(或者如果这个解决方案是正确的方法):
App.FooMixin = Ember.Mixin.create({
init: function() {
this._super();
if (this.getPath('bar.baz')) {
this.notifyPropertyChange('bar.baz');
}
}
});
Run Code Online (Sandbox Code Playgroud)
所以在 7 天内没有答案...我会做的不是在创建时传递属性,而是链接创建并设置属性,如下所示:
\n\nApp.fooObject = App.Foo.create().set(\'bar\', Ember.Object.create({baz: "ember"}));\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n如果还不够令人满意,也许您可以在 github 上的 ember 项目中发布问题:\n https://github.com/emberjs/ember.js/issues
\n 归档时间: |
|
查看次数: |
1189 次 |
最近记录: |