我正在生成一个客户端应在服务器上循环的视图列表。服务器返回一个类似“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中创建一个带有视图名称字符串的视图,并用该视图替换父视图中的现有视图?
答案 0 :(得分:2)
您想要查看Ember.ContainerView,它将允许您以编程方式管理一组子视图。 Container View的文档非常好,请查看:http://emberjs.com/api/classes/Ember.ContainerView.html
由于您似乎只想要一次显示一个视图,因此您可以专注于currentView
属性,这将自动维护您的childViews
数组以显示单个视图。