我正在尝试为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隐藏,所以我最终应该看起来像:
我尝试使用{@if cond
的变体只抓住那些"Sir"
的人,然后抓住其他人,但因为我还需要保持计数,所以我知道我在哪里然后我开始尝试使用{@select key=
。
我对Dust很新,所以我确定我错过了什么。
有人能帮我一把吗?
答案 0 :(得分:2)
尘埃是一种无逻辑的模板语言,或者至少是一种逻辑较少的模板语言。这并不意味着您的应用程序不能拥有逻辑,而只是应该在您的JSON中提供显示逻辑。
使用您当前的JSON在Dust中无法解决您的问题,但如果您将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>