2012-04-20 4 views
8

다음과 같이 루프 안에 객체를 전달하고 싶습니다.개체의 속성을 Jade에서 지역 주민으로 포함하는 방법은 무엇입니까?

데이터 구조 :

things = [ 
     { 
      title: 'foo' 
     , description: 'bar' 
     } 
    , { 
      title: 'baz' 
     , description: 'bam' 
     } 
]; 

index.jade : 위의 형식에서

- for thing in things 
    include things-template 

, 내가 좋아하는 것 "은 같은 일종의 매개 변수를 지정 할 수 있도록 지역 주민 "을 포함합니다.

일 - template.jade :

li 
    h3 #{title} 
    p #{description} 

이 가능, 아니면 다른 변수에 할당하고 내 "일 템플릿"내부를 참조해야합니까?

+0

... –

+1

무엇이 구체적입니까, Ates Goral입니까? –

+0

나는 단지 당신의 괄호와 쉼표의 배치가 그리 일반적이지 않다는 것을 말하고있다. 다른 스타일을 채택 할 생각이라면 Crockford (또는 JSLint)가 위임 한 스타일을 고수하는 것이 좋습니다. OSS 프로젝트에서 사용되는 스타일을 자주 보게됩니다. 또한 Sun Java 스타일과 매우 유사합니다. 기존 스타일을 사용하면 다른 사람들과 공동 작업하는 데 도움이됩니다. –

답변

-3

기존 템플릿을 포함 시키려면 너무 많은 템플릿이 필요합니다. 당신은 단순히 옥 옥 case 블록을 사용하지 않으시겠습니까? 당신은

for thing in things 
    include thing 

자동 객체
으로 일에 ./thing.jade 포함 템플릿의 같은 이름으로 객체 참조를 전달할 수 있습니다 (0.27.4)
최신 옥 버전으로

html 
    body 
     for thing in things 
      case things-template 
       when "simple" 
        include simple 
       when "complexe" 
        include complexe 
       default 
        include simple 
3

thing.jade에서 :

당신이 JSLint에 의해 명령 구문을 채택하는 것이 좋습니다 높은 것
li 
    h3 #{thing.title} 
    p #{thing.description} 
+1

문제는 things- template.jade가 "title"대신 "thing.title"을 지정하면 자체적으로 렌더링 할 때 전달 된 지역 정보를 변경해야합니다. –

+0

나를 위해 작동하지 않습니다. 'no such file ..'이라는 오류 메시지가 나타납니다. . thing template'. 제 경우에는'thing'은 템플릿에 대한 문자열 경로 여야합니다. 대신 jade는 템플릿 자체를'thing'이라고 생각합니다. – dopatraman

관련 문제