2014-03-24 2 views
1

sails.js v0.10을 사용하여 웹 응용 프로그램을 개발 중이며 핸들 막대 템플릿을 사용하고 있습니다. 레이아웃과 부분을 사용하고 싶습니다. sails.js가 express3-handlebars를 사용하여 핸들 바 레이아웃과 부분을 제공한다는 것을 알았습니다. 하지만 나는 동시에 둘 다 사용할 수는 없다.핸들 모음 sails.js 응용 프로그램의 레이아웃 및 부분 부분

내 설정/views.js 파일은 다음과 같습니다이 완벽하게 작동

... 
    engine: 'handlebars', 
    layout: 'layouts/main.handlebars' 
    ... 

, 레이아웃이로드됩니다. 문제는 부분을 사용하려고 할 때 부분이 발견되지 않는다는 오류가 발생합니다.

//UserController.js 
    ... 
    index: function(req, res) { 
     res.view({partials: {userlist: 'partials/userlist'}}); 
    ... 

이것은 config/views.js 레이아웃 속성의 값을 false로 변경할 때만 작동합니다. 하지만 그렇게하면 더 이상 레이아웃을 사용할 수 없습니다.

sails.js의 버그입니까? 또는 나는 잘못된 것을하고 있는가?

+0

가능한 [Sails.js의 핸들 모음에 대한 부분 및 레이아웃 구성 방법] (http://stackoverflow.com/questions/19810671/how-to-configure-partials-and-layouts-for-handlebars- in-sails-js) – sgress454

+0

링크 된 것이 Sails v0.9에만 해당되므로별로 중복되지 않습니다. 사용자가 설명하는 동작은 해당 버전에서 발생하지 않습니다. – ddelrio1986

답변

0

이것은 버그가 아닙니다. 그것은 실제로 설계 상입니다.

Express 3에서 레이아웃/부분에 대한 기본 제공 지원이 중단되었습니다. 대신 개발자는이 기능을 구현하기 위해 뷰 엔진 자체에 의존해야합니다. (이에 대한 자세한 내용은 https://github.com/balderdashy/sails/issues/494을 참조하십시오.)

Sails는 Express 3를 채택한 후 편의를 위해 레거시 레이아웃 기능을 지원하고 Express 2.x 및 Sails 0.8.x 응용 프로그램과 하위 호환성을 유지하며 특히 친숙 함 다른 MVC 프레임 워크에서 오는 새로운 커뮤니티 회원을 위해. 결과적으로 레이아웃은 기본 뷰 엔진 (ejs)으로 만 테스트되었습니다.

레이아웃이 중요하지 않거나 ejs가 아닌 서버 측보기 엔진 (예 : 비취, 핸들 바, 해먹, 먼지)을 사용하는 경우 레이아웃을 설정하는 것이 좋습니다. sails.config.views에 false가 있으면 뷰 엔진의 사용자 정의 레이아웃/부분 지원을 사용하십시오.