所以我在使用Dust.js模板时遇到了麻烦。
假设我有以下示例对象模型:
var lifeStory = [{
"LifeEvent": "Birth",
"year": "1963"
},
{
"LifeEvent": "marriage",
"year": "1963",
"month": "Jul",
"day": "15"
},
{
"LifeEvent": "death"
}
];
// or
var lifeStory = [{
"LifeEvent": "Birth"
},
{
"LifeEvent": "Baptizm"
},
{
"LifeEvent": "marriage"
},
{
"LifeEvent": "death"
}
];
,我有这个ustustjs模板:
{#lifeStory}
<div class="myRow">
<div class="DateColumn">
{year} - {month} - {day}
</div>
<div class="lifeEventColumn">
{LifeEvent}
</div>
</div>
{/lifeStory}
如果我的数组中没有任何年,月和日属性,我想隐藏DateColumn。 如果数组中只有一项具有日期信息,我想显示所有行的DateColumn。
我是灰尘的新手,但我认为这可能需要编写自定义的灰尘助手。任何帮助都会很棒。
谢谢!!!!
答案 0 :(得分:0)
您需要{@any}
助手。如果您测试的任何条件为真,该助手将执行。
我们将测试您的任何日期字段是否存在,并输出它们是否存在。
由于Dust在进行相等性检查时有一定的强制性,因此我们将所有内容都强制转换为字符串,并检查它们是否等于"undefined"
。
{#lifeStory}
<div class="myRow">
{@select type="string"}
{@ne key=year value="undefined"/}
{@ne key=month value="undefined"/}
{@ne key=day value="undefined"/}
{@any}
<div class="DateColumn">
{year} - {month} - {day}
</div>
{/any}
{/select}
<div class="lifeEventColumn">
{LifeEvent}
</div>
</div>
{/lifeStory}