我有一个类别列表。每个类别都可以有子类别。这是我创建的模型:
App.Category = Em.Object.extend({
id: null,
name: null,
subCategories: Em.ArrayProxy.create({content: []})
});
问题是,如果我将一个子类别subCategories
推送到数组中,它会被推送到App.Category
看看这个jsFiddle。
我不明白为什么会这样,我应该如何重写它才能正常工作。
代码:
App.Category = Em.Object.extend({
id: null,
name: null,
subCategories: Em.ArrayProxy.create({content: []})
});
App.categories = Em.ArrayController.create({
content: [],
// assumes list of categories is ordered by parent id
loadCategories: function(cats) {
for (var i=0, cat; i < cats.length; i++) {
var parentID = cats[i].parentID;
delete cats[i].parentID;
cat = App.Category.create(cats[i]);
if (parentID !== null) {
var parent = this.findProperty('id', parentID);
parent.get('subCategories').pushObject(cat);
} else {
this.pushObject(cat);
}
};
}
});