在create()上不调用Observer

lou*_*uio 6 ember.js

我有一个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)

sly*_*7_7 3

所以在 7 天内没有答案...我会做的不是在创建时传递属性,而是链接创建并设置属性,如下所示:

\n\n
App.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