我正在构建一个emberjs应用程序我希望有两个不同的布局,例如应用程序模板和另一个模板,我不希望我的所有视图都在应用程序模板中呈现,就像在rails中指定有多个不同控制器的布局
答案 0 :(得分:4)
实际上非常简单,只需指定要呈现的模板:
App.ApplicationRoute = Ember.Route.extend({
renderTemplate: function() {
if (expression) {
this.render('application');
} else {
this.render('site');
}
}
});
答案 1 :(得分:1)
这是我从emberjs讨论论坛得到的答案
使用“layoutName”属性为两个布局创建两个视图:
App.MainLayoutView = Ember.View.extend({ layoutName: 'layout/main', });
和
App.SecondaryLayoutView = Ember.View.extend({
layoutName: 'layout/secondary',
});
为布局创建两个模板,称为“layout / main”和“layout / secondary”。
确保您的视图扩展了这些布局视图。例如,对以下路径配置进行成像:
App.Router.map(function() {
this.resource('users', function() { this.route('new');
this.route('login'); });
});
如果您希望所有用户路由使用MainLayout并登录以使用辅助布局,请创建两个视图:
App.ProjectsView = App.MainLayoutView.extend();
和
App.LoginView = App.SecondaryLayoutView.extend();
无需为“projects / new”创建视图,因为它是项目的嵌套路径,因此继承了Projects的布局。
希望它有所帮助!