2012-03-06 158 views
2

http://jsfiddle.net/lily/9w5QU/3/什麼是多級嵌套視圖的最佳解決方案?

我想顯示第一級內容,同時不斷添加其他視圖INSIDE第一級。這將是多層次的。現在代碼不是嵌套視圖。

如果我對第一級使用CONTAINERVIEW,那麼它的內容將不會顯示,如果我使用VIEW,那麼我不能添加另一個視圖,或者我不知道如何添加它而不使用手柄欄模板。

是Ember.js擅長管理多層嵌套視圖?

+1

這將有助於更多地瞭解你正在嘗試專門完成 – ebryn 2012-03-06 03:16:31

+0

什麼爲了構建一個單頁面應用程序,需要頁眉,頁腳和內容,但在每個應用程序中,還有其他子元素。所以有多層次的嵌套視圖需要渲染和綁定的燼對象。我試圖找到一個解決方案,這對管理子視圖比較好,比如ContainerView,可以添加,刪除子視圖。但同時希望顯示視圖本身。因爲即使在頁腳,標題級別,也有一定的模板需要渲染。 – lilyfrommars 2012-03-06 18:37:36

回答

1

我修改了您的示例,顯示了多級嵌套視圖。

window.App = Ember.Application.create() 

App.FirstLevelView = Ember.View.create 
    tagName: 'div' 
    classNames: ['box'] 
    name: 'first level container' 
    template: Ember.Handlebars.compile '{{name}} {{view secondView}}' 
    secondView: Ember.View.extend 
     tagName: 'div' 
     classNames: ['box'] 
     name: 'second level container should go inside first level container' 
     template: Ember.Handlebars.compile '{{name}} {{view thirdView}}' 
     thirdView: Ember.View.extend 
     tagName: 'div' 
     classNames: ['box'] 
     name: 'third level view goes inside second' 
     template: Ember.Handlebars.compile '{{name}}' 

App.FirstLevelView.append() 
0

不過如果你不能得到你的父視圖中嵌套的視圖,你可能做到這一點,

window.App = Ember.Application.create() 
App.ApplicationController = Ember.ObjectController.create() 
App.FirstLevelController = Ember.ObjectController.create() 

App.FirstLevelView = Em.View.create 
    tagName: 'div' 
    classNames: ['box'] 
    name: 'first level container' 
    template: Em.Handlebars.compile("{{name}}{{view controllers.applicationController.view.secondView}}") 
    secondView: Em.View.extend 
     tagName: 'div' 
     classNames: ['box'] 
     name: 'The second level container should go inside first level container' 
     template: Ember.Handlebars.compile 'Hey Khajan!! {{name}}' 

App.FirstLevelView.append() 
+0

添加一些解釋,這將是一個更好的答案。 – ChrisF 2013-03-02 12:24:24

相關問題