カテゴリのリストがあります。各カテゴリにはサブカテゴリを含めることができます。これは私が作成したモデルです:
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);
}
};
}
});