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
}
});