2

다음은 jsfiddle입니다.Dust.js를 사용한 클라이언트 측 템플리트의 조건문

내가 출력 dust.js를 사용하는 사람들의 이름을 모두 원하는 경우
{ 
    "people": [ 
     { 
      "name": "Bob", 
      "eye-color": "Green" 
     }, 
     { 
      "name": "Jill", 
      "eye-color": "Blue" 
     }, 
     { 
      "name": "James", 
      "eye-color": "Green" 
     } 
    ] 
} 

, 내가 지금처럼 템플릿을 설정합니다 :

<ul> 
    {#people} 
    <li>{name}</li>{~n} 
    {/people} 
</ul> 

을하지만, 어떤 경우 :

나는이 JSON 데이터를 말해봐

1) "녹색"눈을 가진 사람들의 이름 만 출력하고 싶습니까? conditionals in dust을 사용하여이를 수행 할 수 있습니까?

2) 나는 관계없이 눈 색깔의

3) 난 단지, 출력 번째 사람의 이름에 관계없이 눈 색깔의 원, 출력 처음 두 이름을 원

편집 : 네 번째 추가 및 다섯 번째 시나리오 :

4) I은 단지 두 번째와 세 번째의 이름을 표시하고 싶은 (즉, 지수 X인덱스 Y)에

5) 녹색 눈을 가진 사람들의 처음 두 이름 만 출력하고 싶습니다. (사람들의 목록이 위에 표시된 3 개보다 훨씬 길었고 표시되지 않는 더 많은 녹색 눈을 가진 사람들을 포함하여).

그리고 하나 개 더 질문 :이 포함되어 있는지 확인하는 {@eq}를 사용하는 방법이 있나요

{ "tags": ["tag1", "tag2", "tag3"] } 

:

내 JSON은 다음과 같은 키/값 쌍의 말 "tag2"예를 들면?

답변

1

세 가지 작업을 모두 수행 할 수 있지만 먼지 helpers을 사용해야합니다.

1 : 당신은 대시 먼지를 혼동 할 수 있기 때문에 나는 또한 eyeColoreye-color에서 키를 변경하고있어합니다 (@eq 도우미가 필요

<ul> 
    {#people} 
     {@eq key=eyeColor value="Green"} 
      <li>{name}</li>{~n} 
     {/eq} 
    {/people} 
</ul> 

2 :. 당신은 $idx과 함께 @lt 도우미가 필요합니다 ($idx입니다 첫 번째 항목이 0 인 배열)에서 현재 항목의 인덱스

<ul> 
    {#people} 
     {@lt key=$idx value=2} 
      <li>{name}</li>{~n} 
     {/lt} 
    {/people} 
</ul> 

3 :. 당신은 0123와 함께 @eq 도우미가 필요합니다

<ul> 
    {#people} 
     {@eq key=$idx value=1} 
      <li>{name}</li>{~n} 
     {/eq} 
    {/people} 
</ul> 
+0

awesome! 정말 고마워. 2 개의 빠른 추가 기능 : 1) 이름이 3 개 이상인 경우에만 이름 2-3을 어떻게 표시합니까? 2) {~ n}은 무엇을합니까? 코드가 없으면 정상적으로 작동하는 것 같습니다. – dougmacklin

+0

1)'{@gt key = $ idx value = 0} '안에'{@lt key = $ idx value = 3}'을 중첩 할 수 있습니다. 2)'{~ n}' Dust가 기본적으로 제거되는 새로운 라인을 추가합니다. 당신은 아마 그것을 필요로하지 않습니다. – smfoote

+0

감사합니다 smfoote! 두 가지 시나리오와 다른 관련 질문을 추가했습니다. 가능한 경우 알려 주시면 알려 드릴까요?그게 다예요, 약속드립니다 : – dougmacklin

관련 문제