2012-03-06 122 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

相关问题