2012-12-21 83 views
1

我想向dustjs模板添加一些邏輯,但我正在努力把它放在一起。有條件的模板

我Json的代碼如下所示:

{ 
    "names": [{ 
     "name": "User 1", 
     "isSir": true 
    }, { 
     "name": "User 2", 
     "isSir": true 
    }, { 
     "name": "User 3", 
     "isSir": true 
    }, { 
     "name": "User 4", 
     "isSir": false 
    }, { 
     "name": "User 5", 
     "isSir": false 
    }, { 
     "name": "User 6", 
     "isSir": false 
    }] 
} 

然後,我通過這個要循環,併爲「isSir」的每個變化只顯示第一個項目。其餘項目將與CSS被隱藏,所以我應該用一些看起來落得像:

  • 用戶1 (顯示)
  • 用戶2 (隱藏)
  • 用戶3 (隱藏)
  • 用戶4 (顯示)
  • 用戶5 (隱藏)
  • 用戶6 (隱藏)

我一直在使用的{@if cond變化搶只有誰是"Sir"第一的,然後其他人嘗試過,但因爲我還需要繼續計數,所以我知道我正在循環中,然後我迅速轉移到嘗試使用{@select key=

我對粉塵非常陌生,所以我確信我錯過了一些東西。

有人能幫我一下嗎?

回答

2

灰塵意味着一種無邏輯的模板語言,或者至少是一種邏輯性較低的模板語言。這並不意味着你的應用程序不能有邏輯,但只是顯示邏輯應該在你的JSON中提供。

解決你的問題是不可能的灰塵與當前的JSON,但如果你改變你的JSON到:

{ 
    "names": [{ 
     "name": "User 1", 
     "isSir": true, 
     "isHidden": false 
    }, { 
     "name": "User 2", 
     "isSir": true, 
     "isHidden": true 
    }, { 
     "name": "User 3", 
     "isSir": true, 
     "isHidden": true 
    }, { 
     "name": "User 4", 
     "isSir": false, 
     "isHidden": false 
    }, { 
     "name": "User 5", 
     "isSir": false, 
     "isHidden": true 
    }, { 
     "name": "User 6", 
     "isSir": false, 
     "isHidden": true 
    }] 
} 

然後你可以使用這樣的模板:

<ul> 
{#names} 
    <li{?isHidden} class="hidden"{/isHidden}> 
    {?isSir}Sir {/isSir}{name} 
    </li> 
{/names} 
</ul>