2013-06-09 2 views
1

쉽게 만들 수있는 많은 개별 기능이 있지만 특정 기능을 요구하는 대신 실제 목표부터 시작하겠습니다.어떻게 기본 액세스 부분을 설정합니까?

nodejs에서 consolidate를 사용하여 dust.js를 시작합니다 ... 링크를 사용하여 링크를 만듭니다. 부분 렌더링 및 클라이언트 측 렌더링을 지원하기 위해 템플릿을 위로부터 설정할 계획입니다. 똑똑해 보입니다!

그러나 나는 이것이 나의 index.tt의 상단에-부분 렌더링이 :

{>layout layout/} 

그것은 나에게 HTML 래퍼를 제공, 좋은 작품 ...하지만 나에게 사소한해야 보인다 그 부분을 렌더링하지 않거나, "no_layout"과 같이 렌더링하는 부분을 무시하는 변수를 설정할 수 있습니다.

대신 "{layout}"을 사용하면 모든 런 모드에서 명시 적으로 layout="layout"을 설정하는 한 괜찮습니다.

dustjs가 value-defaults 개념을 가지고 있다면 괜찮을 것입니다.하지만 시도해 보았습니다. 노드가 그 부분을 처리해야하는 것처럼 보입니다 (if 문이 작동하지 않는 것처럼 보일 수도 있고, 않았다 인라인 ||).

dustjs를 사용하면 조건부로 dustjs 코드를 실행할 수 있지만 괜찮을 것입니다. 그러나 모든 @if 문은 렌더링과 관련이 있습니다.

우리는 우려의 분리를 유지하기를 원합니다. 그래서 나는 처음부터 dustj를 사용할 것입니다 ... 이것은 내게 일어날 때보기 측면의 관심사처럼 보입니다. 기본 방법은 99 %입니다. 여기

내가 지금 가지고있는 코드입니다 (중요하지 않는, layout.dust 제외) :

index.dust :

{>layout "{layout}"/} 
{<main} 
Welcome to {title} 
{/main} 
{/profile} 

하는 index.js :

exports.index = function(req, res){ 
    res.render('index', { title: 'Express',layout: "layout" }); 
}; 

내가 말했듯이, 그것은 작동하지만 ... 해키가 느껴지고 제어기가 명시 적으로 "정상적으로 렌더링"하도록 지시하게합니다.

답변

0

나는 이것이 불가능하다는 결론을 내리고, "대기업들이 그걸 집어 들고 있기 때문에"그것을 골라내는 사용자가 너무 적다는 것은 나쁜 생각이었다.

이것은 추측이지만이 질문에 대한 대답은 아무도이 명백한 상황을 생각한 적이 없다고 생각합니다.

관련 문제