2014-03-03 4 views
2

나는 이것이 여기에서 제기 된 동일한 문제인 것을 깨닫는다 : How to use multiple layout within a SailsJS app?. Sails.js로 변경된 것이 있는지 또는 나는 단지 멍청한 것인지 모르겠습니다. 누군가를 원하면 도움이 될거야.Sailsjs : Multiple Layouts

내가 개발중인 응용 프로그램에는 두 측면, 공용 측면 및 관리자 측면이 있습니다. 내 인생에서 볼 때 기본 설정과 다른 레이아웃을 사용할 수는 없습니다. 기본 "ejs"템플릿 엔진을 사용하고 있습니다.

대체 레이아웃의 위치는 여기에있는 : 여기

module.exports.routes = { 

    '/': { 
    view: 'home/index' 
    }, 

    '/dashboard': { 
    view: 'admin/index' 
    ,controller: 'dashboard' 
    ,action: 'index' 
    } 

}; 

의 내 /api/controllers/DashboardController.js 파일 :

/views/layoutadmin.ejs 

여기 내 /config/routes.js 파일입니다

module.exports = { 

    index: function (req, res) { 
    res.view({ layout: 'layoutadmin' }); 
    } 

}; 

답변

2

여기서 문제는 라우트 구성에서보기와 컨트롤러/조치를 모두 지정한다는 것입니다./또는 둘 중 하나만 수행 할 수 있습니다. 당신이 원하는 : 당신은 그것을에서 레이아웃을 정책을 만들고 바꿀 수

module.exports = { 

    index: function (req, res) { 
    res.view('admin/index', { layout: 'layoutadmin' }); 
    } 

}; 
+0

스팟 : 정책, 설정/policies.js에서, 같은 것을 넣어. 설명을 해 주시고 시간을내어 답변 해 주셔서 감사합니다. 정말 감사. – Gor

2

:

module.exports.routes = { 

    '/': { 
    view: 'home/index' 
    }, 

    '/dashboard': { 
    controller: 'dashboard' 
    ,action: 'index' 
    } 

}; 

그리고 DashboardController에서

가 확인이 아웃 : https://github.com/vimia/blew/blob/master/api/policies/isPjaxRequest.js

난과 레이아웃을 변경 매개 변수 ...

은 다음과 같습니다 .AdminModule

AdminController: [ '*': 'isAdminModule'] 

은 모든 관리자의 요청이 다른 레이아웃을해야합니다 ... 스콧에