多级嵌套视图的最佳解决方案是什么?

时间:2012-03-06 01:53:40

标签: ember.js

http://jsfiddle.net/lily/9w5QU/3/

我想显示第一级内容,同时继续在第一级添加其他视图。这将是多层次的深层次。现在代码不是嵌套视图。

如果我使用CONTAINERVIEW作为第一级,那么它的内容将不会显示,如果我使用VIEW,那么我无法添加另一个视图,或者我不知道如何在不使用句柄栏模板的情况下添加它。

是Ember.js擅长管理多层嵌套视图吗?

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分: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()