Sailsjs:多个布局

时间:2014-03-03 21:24:49

标签: node.js sails.js

我意识到这是同一个问题: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' });
  }

};

2 个答案:

答案 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']

然后所有管理员请求都会有另一个布局......