2017-02-24 53 views
1

我有一个延伸Ember.ArrayProxy像类:灰烬ArrayProxy使用init不工作

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钩覆盖,改变AREN” t繁殖,所以我的模板不变

{{#each myProxy as |someObj|}} 

我想我在做一些事情不对,但有趣的是,我可以使用myProxy.content属性来查看更改(尽管我应该只通过myProxy来引用此内容)。也许有人可以指出我正确的方向

回答

1

您不提供内容属性与ProxyClass.create({ content: [] }),而是想要设置它在init()方法。 ArrayProxy确实有观察者注意到content属性的更改,但问题在于观察者在对象完成初始化(因此,在此情况下没有正确设置内容更改侦听器)之后才会启动。

要调用父的init()方法之前修复它只是一组内容:

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

它的工作原理,谢谢! – MyFantasy512