2013-01-16 67 views
2

boilerplatejs zip中,有一個包含兩個子組件(chartViewPanel和treeViewPanel)的示例組件(salesDashBoard) 父組件定義了一個view.html,其中兩個div帶有id #tree和#chart,但子組件附加到此視圖而不是在這兩個div中呈現。如何使用boilerplatejs創建組件層次結構?

有沒有一種方法(也許用一個DomController?)將子組件附加到特定的DOM元素而不是附加它們?這將是非常有用的,理想情況下,我希望有一個Dom/Url控制器的層次結構:父母會攔截事件,然後將它們發送給孩子,直到孩子將事件(針對特定的一組url/dom事件)路由到一個帶有MVVM的簡單組件。

回答

1

用戶界面在定義的div之外渲染實際上是一個bug,現在是fixed

是的,您可以將子視圖模板附加到特定的DOM元素。 Boiler.ViewTemplate接受父參數,並且必須傳遞它需要呈現的DOM元素。

至於您的問題的第二部分,您需要的是contexts的層次結構。您可以保留UI組件上的控制器層次結構。只需將所有的UI組件轉換爲子模塊即可。意思是你的每個UI組件都會有一個module.js文件並且是父模塊的子模塊。例如,看看application.js,看看它如何使用Base.Context.loacChildContexts()方法加載它的子模塊。

您可以在BoilerplateJS website

的「產品模塊」一節中閱讀更多關於此概念的內容