當工作我有以下路線圖:灰燼{{控制}}車把助手在出口停止開關插座模型
App.Router.map(function() {
this.resource("data", {path: "data/:data_id"});
});
我的應用程序模型具有樹狀結構如下:
[
{
id:0,
text:"John",
children:[
{
id:2,
text:"Max"
},
{
id:4,
text:"Mireille",
children: [
{
id:5,
text:"Michael"
}
]
}
]
},
{
id:1,
text:"Alex",
children: [
{
id:3,
text:"Laetitia"
}
]
}
]
我想在我的應用程序模板中顯示我的樹的主「父母」(深度爲零)作爲列表(所以John和Alex在這裏)。當點擊John或Alex時,我們轉換到名爲「data」的新路線,將「this」作爲模型傳遞。在數據路徑中,我想顯示樹的其餘部分:因此,如果我單擊約翰,我希望數據模板向我顯示他所有孩子的嵌套列表。由於樹的深度是不確定的,我使用實驗性的handlebars {{control}} helper遞歸地生成嵌套列表。
當我點擊John或Alex時,它正常工作。但是當我想切換到另一個(所以通過點擊其他名稱來更改傳遞給「數據」路徑的模型),然後我得到奇怪的消息錯誤。首先,我得到:
Uncaught TypeError: Cannot call method 'lookupFactory' of undefined
然後,如果我繼續嘗試點擊,我得到:
Uncaught Error: Something you did caused a view to re-render after it rendered but before it was inserted into the DOM.
示例應用程序出現此問題可以在this jsbin找到。
任何關於如何在沒有控制助手的情況下遞歸創建樹的提示? – cwarny
我會調查使用ContainerView。 –
[This jsbin](http://jsbin.com/oTaPECI/1/watch?html,js輸出)解決了這個問題。感謝您指出控制幫手已被刪除。 – cwarny