2013-12-18 4 views
4

클라이언트에서 백본을 사용하고 서버에서 노드 (돛)를 사용하는 단일 페이지 웹 응용 프로그램이 있습니다.Sails JS의 템플릿 엔진으로 밑줄/로다시 사용

저는 현재 클라이언트에서 템플릿 엔진으로 lodash.underscore를 사용하고 서버에서는 kiwi를 사용합니다.

점진적 향상 기능을 갖춘 푸시 스테이트를 구현하고 싶습니다. 즉 클라이언트와 서버는 동일한 템플릿 파일을 공유합니다.

이것은 동일한 템플릿 엔진을 사용해야 함을 의미합니다. 나는 밑줄/로다시와 함께 가기로 결정했다.

ails config \ views.js에서 밑줄을 템플릿 엔진으로 사용할 수 있음을 의미합니다. 문제는이 작업을 수행하는 방법을 연습 할 수 없다는 것입니다. 내 package.json에 포함하고 설정 한

'engine': 'underscore' 
내 응용 프로그램까지 발사 때 다음 오류가 발생

- 나는 엔진을 설정하면 "콜백 기능이 Function.app.engine에서 요구되는"

을 '키위', '비취', 'ejs'등을 선택하면 작동합니다.

어떤 생각이 잘못된 것입니까?

답변

0

나는 이해가 잘 모르겠어요 정확히 당신의 묻는 다음과 같은 구성으로 내 서버 - 사이드 뷰 그러나, 내가 사용했던 밑줄 템플릿 :

config/views에서 내가 설정 한 내 엔진 EJS에 :

engine: 'ejs', 

와의 내 Gruntfile.js 내가 설정 한 :

var templateFilesToInject = [ 
    'linker/**/*.ejs' 
]; 
+0

서버 측보기는/views에 있고 클라이언트 템플리트는/assets/templates에 있습니다. 중복 된 코드를 피하기 위해 클라이언트 템플릿에서 서버 사이드 뷰를 빌드하고자합니다. 이렇게하면 pushState를 활성화 할 수 있습니다. 이렇게하려면 같은 '언어'에 있어야하고 현재 구문이 아닌 동일한 구문을 사용하는보기와 템플릿이 필요합니다./포인트에서 참조하는 자산/템플릿을 조회하고 표준 구문을 얻는 것과 같은 두 가지 문제가있는 것 같습니다. – redeye

0

Consolidate.js은 012,325,404의로 support Underscore as an engine을한다, Lodash는 version 0.10.0입니다.

Sails.js supports all of the view engines compatible with Express via Consolidate하지만 Consolidate를 직접 종속성으로 포함하는 첫 번째 버전의 Sails는 only 0.12.0-rc2입니다. 나는 Sails가 이것 이전에 다른 템플릿 엔진을 어떻게 관리했는지 모르겠지만, documentation suggests that Underscore has been supported as a view engine since 0.10.0.

사용중인 Sails 버전이 Underscore를 뷰 엔진으로 지원하는지 확인하고 사용하려고 시도하기 전에 npm i --save underscore인지 확인해야합니다.