0

我正在生成客户端应在服务器上循环浏览的视图列表。服务器返回一个列表,如“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 中创建一个带有视图名称字符串的视图,并用该视图替换父视图中的现有视图?

4

1 回答 1

2

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

由于听起来您一次只希望显示一个视图,因此您可以专注于该currentView属性,它将自动维护您的childViews数组以显示单个视图。

这里还有一个例子:http ://www.emberplay.com/#/workspace/2792969430

于 2012-11-20T05:06:02.817 回答