Ember.js 这个余烬混合物会像筛子一样泄漏内存吗

Ember.js 这个余烬混合物会像筛子一样泄漏内存吗,ember.js,data-binding,ember-data,Ember.js,Data Binding,Ember Data,我已经为我的AdminController编写了这个Mixin,以便编辑记录的数据。我正在将模型属性收集到一个返回的数组中。我正在绑定该值,但为此,我在每个数组项中添加了对模型的引用。我担心这样做会泄露内存。理想情况下,我可以使用其他(更全局的?)路径引用模型 这是混音器: import Ember from 'ember'; export default Ember.Mixin.create({ modelAttributes: function() { var mo

我已经为我的
AdminController
编写了这个
Mixin
,以便编辑记录的数据。我正在将模型属性收集到一个返回的数组中。我正在绑定该值,但为此,我在每个数组项中添加了对模型的引用。我担心这样做会泄露内存。理想情况下,我可以使用其他(更全局的?)路径引用模型

这是混音器:

import Ember from 'ember';

export default Ember.Mixin.create({
    modelAttributes: function() {
        var model = this.get('model');
        var attrs = [];
        model.eachAttribute(name => {
            var obj = Ember.Object.create({
                // Possible memory leak because I've assigned the model inside a closure? 
                model: model,                           
                key: name,

                // This is connects the model attribute with the input
                // field in my template 
                valueBinding: ('model.'+name),
            });
            attrs.push(obj);
        });

        return attrs;
    }.property('model'),
});
这就是我如何利用模板中的属性:

{{#each attr in modelAttributes}}
<tr>
    <th>{{attr.key}}</th>
    <td>{{input value=attr.value class="form-control"}}</td>
</tr>       
{{/each}}
{{#modeldattributes中的每个attr}
{{attr.key}
{{input value=attr.value class=“表单控制”}
{{/每个}}

欢迎代码审查和其他想法

不,循环引用/闭包本身不会造成内存泄漏。在您的示例中,该函数是匿名的,一旦不再引用它,它将被收集。模型不再被任何人引用的那一刻就是它有资格进行垃圾收集的那一刻。

感谢您的反馈!你能想出一个更好的方法来创建这个绑定而不引用数组中每个对象的模型吗?