ember.js基于类的帮助程序是否删除了观察者?

时间:2016-11-15 23:24:22

标签: ember.js

我在ember中有一个简单的基于类的帮助器,只要属性发生变化,就会添加一个观察者来调用.recompute。由于没有机会调用removeObserver(因为助手上没有破坏...方法),将继续使用助手累积观察者' cruft'随着时间的推移并导致性能泄漏?

以下是代码:帮助程序可以在模板中直接获取服务或属性,而不必将服务放入模板后面的组件或控制器代码中:

export default Ember.Helper.extend({
    someService: Ember.inject.service(),
    compute: function([propName]) {
        const svc = this.get('svc');
        if (Ember.isPresent(propName)) {
            svc.addObserver(propName, this, 'recompute');
        }
        return propName ? get(svc, propName) : svc;
    },
});

0 个答案:

没有答案