2012-03-23 56 views
1

這裏是我想要做的事:如何使用的N嵌套兒童parentView.template在EmberJS

我想創建一個emberjs樹部件,這將是這樣的:

{{view UI.TreeView content="App.rootNode"}} 
     {{name}} //-> content of each node, it could be <img src="{{icon}}" /> {{name}} 
    {{/view}} 

我面臨的問題是如何使用內模板在我itemViewClass。

這裏是我想出了這麼遠:http://jsfiddle.net/YJ7zM/13/

相關線路:

template: Em.Handlebars.compile("{{name}} {{view UI.TreeChildrenView contentBinding=\"children\"}}") 

這就是我不喜歡行,願與更換更多的東西一樣:

templateBinding: "parentView.template" 

的問題是,「parentView」將只對樹的第一級工作,爲其他的將是「parentView.parentView.template」等去了。

回答

0

你總是可以從外部定義模板,並使用templateName ...

http://jsfiddle.net/YJ7zM/14/

編輯

修訂,以解決第一條評論。 http://jsfiddle.net/ud3323/mgCva/

+0

創建我的樹時,這將需要大量的模板解耦的定義。我想避免這種情況。 – 2012-03-23 19:03:57

+0

對不起,我誤解了你的問題。看到我修改後的答案。除了方便我不明白爲什麼脫鉤你的模板定義是一件壞事這裏...我很好奇地聽到到底爲什麼你認爲這條路線是一個更好的路要走。 – 2012-03-26 11:09:20

+0

謝謝你,羅伊。嗯,我想它的方式更清潔,更直觀的讓他們在一起,因爲它們之間的相互關係。爲了保持一致,我創建的其他小部件也以同樣的方式工作。 – 2012-03-26 11:48:06