我意识到这是同一个问题:How to use multiple layout within a SailsJS app?。我不确定Sails.js是否有变化,或者我只是一个麻木。希望有人能帮忙......
我正在开发的应用程序有两个方面,一个是公共方面,另一个是管理方面。对于我的生活,我无法使用与默认布局不同的布局。我正在使用默认的“ejs”模板引擎。
备用布局的位置在此处:
/views/layoutadmin.ejs
这是我的/config/routes.js文件:
module.exports.routes = {
'/': {
view: 'home/index'
},
'/dashboard': {
view: 'admin/index'
,controller: 'dashboard'
,action: 'index'
}
};
这是我的/api/controllers/DashboardController.js文件:
module.exports = {
index: function (req, res) {
res.view({ layout: 'layoutadmin' });
}
};
答案 0 :(得分:2)
这里的问题是您在路由配置中指定了视图和控制器/操作。你只能做/或。你想要:
module.exports.routes = {
'/': {
view: 'home/index'
},
'/dashboard': {
controller: 'dashboard'
,action: 'index'
}
};
在DashboardController中:
module.exports = {
index: function (req, res) {
res.view('admin/index', { layout: 'layoutadmin' });
}
};
答案 1 :(得分:2)
您可以创建一个策略并更改其中的布局: 看一下这个: https://github.com/vimia/blew/blob/master/api/policies/isPjaxRequest.js
我用param改变了布局......
您可以在config / policies.js中创建 isAdminModule 政策,如下所示:
AdminController: [ '*': 'isAdminModule']
然后所有管理员请求都会有另一个布局......