我正在尋找一種方法來從Ember模型生成D3.js數據結構,將我現有的應用程序轉換爲Ember。目標是顯示一個任務樹,每個任務有0個或更多的子任務。如何使用Ember Data來表示模型樹?
這裏是我想喂D3.js結果:
[
{
"parent": 429,
"name": "Parent task 1",
"id": 428
"children": [
{
"parent": 428,
"name": "Sub task 1",
"id": 425
},
{
"parent": 428,
"name": "Sub task 2",
"id": 426
}
]
},
...
]
我試圖這樣定義我的模型:
Minp.Task = DS.Model.extend({
name: DS.attr(),
subtasks: DS.hasMany('task'),
data: Ember.computed(function() {
return {
id: this.get('id'),
name: this.get('name'),
type: 'task',
children: this.get('subtasks').map(function (task) {
return task.get('data');
})
};
}).property()
});
但是,我得到一個「最大調用堆棧大小超過「錯誤。看起來從data
屬性調用this
導致它在無限循環中再次被調用。
如果我爲孩子返回一個空數組,所有工作正常。
你知道我爲什麼這麼做嗎?這是另一種方式嗎?
在您的示例中存在拼寫錯誤「thisi」。見模型。 –
謝謝,修復! –