动态创建视图

时间:2012-11-20 04:04:29

标签: ember.js

我正在生成一个客户端应在服务器上循环的视图列表。服务器返回一个类似“App.AView”,“App.BView”,“App.CView”等的列表,它们引用客户端上的视图和模板。

我想动态创建这些视图,换出上一个视图,并包含新视图。我的第一个是用这个动态视图名称编译一个把手模板,ala:

App.QuestionView = Em.View.extend({
    template: function() {
         return Ember.Handlebars.compile("{{view " + this.get("view_name') + "}}");
    }
});

哪个有效,但看起来很难看 - 是否有办法在Ember.JS中创建一个带有视图名称字符串的视图,并用该视图替换父视图中的现有视图?

1 个答案:

答案 0 :(得分:2)

您想要查看Ember.ContainerView,它将允许您以编程方式管理一组子视图。 Container View的文档非常好,请查看:http://emberjs.com/api/classes/Ember.ContainerView.html

由于您似乎只想要一次显示一个视图,因此您可以专注于currentView属性,这将自动维护您的childViews数组以显示单个视图。

此处还有一个示例:http://www.emberplay.com/#/workspace/2792969430