以下是jsfiddle以下内容。假设我有这个JSON数据:
{
"people": [
{
"name": "Bob",
"eye-color": "Green"
},
{
"name": "Jill",
"eye-color": "Blue"
},
{
"name": "James",
"eye-color": "Green"
}
]
}
如果我想使用dust.js输出所有人的名字,我会像这样设置模板:
<ul>
{#people}
<li>{name}</li>{~n}
{/people}
</ul>
然而,如果:
1)我只想输出“绿色”眼睛的人的名字?有没有办法使用conditionals in dust?
来实现2)我只想输出前两个名字,无论眼睛颜色
3)我只想输出第二个人的名字,无论眼睛的颜色如何
编辑:添加第四个和第五个方案:
4)我只想显示第二个和第三个名字(即指数 X 指数 Y )
5)我只想输出前两个绿眼睛的人的名字(比如上面显示的人的名单比上面显示的3更长,包括更多不会显示的绿眼人)。 / p>
还有一个问题:
假设我的JSON有一个键/值对,如下所示:
{ "tags": ["tag1", "tag2", "tag3"] }
有没有办法使用{@eq}检查它是否包含“tag2”?
答案 0 :(得分:1)
您可以完成所有这三项工作,但您需要使用Dust helpers。
1:您需要@eq
帮助器(我还要将密钥从eye-color
更改为eyeColor
,因为破折号可能会混淆灰尘。
<ul>
{#people}
{@eq key=eyeColor value="Green"}
<li>{name}</li>{~n}
{/eq}
{/people}
</ul>
2:您需要@lt
助手以及$idx
($idx
是数组中当前项的索引,其中第一项为0)。
<ul>
{#people}
{@lt key=$idx value=2}
<li>{name}</li>{~n}
{/lt}
{/people}
</ul>
3:您需要@eq
助手以及$idx
<ul>
{#people}
{@eq key=$idx value=1}
<li>{name}</li>{~n}
{/eq}
{/people}
</ul>