Ember.js init不工作的Ember ArrayProxy

Ember.js init不工作的Ember ArrayProxy,ember.js,Ember.js,我有一个扩展了Ember.ArrayProxy的类,比如: export default Ember.ArrayProxy.extend({ init() { this._super(...arguments); this.set('content', Ember.A([])); // doing some stuff }, }); 我是这样用的: const myProxy = ProxyClass.create({}); myProxy.

我有一个扩展了
Ember.ArrayProxy
的类,比如:

export default Ember.ArrayProxy.extend({
    init() {
      this._super(...arguments);
      this.set('content', Ember.A([]));
      // doing some stuff
    },
});
我是这样用的:

const myProxy = ProxyClass.create({});
myProxy.addObject(0.5);
但是由于
init
hook覆盖,更改不会传播,因此我的模板不会更改

{{#each myProxy as |someObj|}}

我认为我做错了什么,但有趣的是,我可以使用
myProxy.content
属性查看更改(尽管我应该通过
myProxy
引用)。也许有人可以给我指出正确的方向

您没有为
ProxyClass.create({content:[]})
提供内容属性,而是希望在
init()
方法中设置它。
ArrayProxy
确实有观察者,可以观察
内容
属性的更改,但这里的问题是,观察者在对象初始化完成后才会启动(因此,在这种情况下,内容更改侦听器设置不正确)

要修复它,只需在调用父init()方法之前设置内容:

export default Ember.ArrayProxy.extend({
  init() {
     this.set('content', []);
     this._super(...arguments);
    // doing some stuff
  }
});