Dustjs - Проверьте условие относительно ВСЕХ элементов в массиве с помощью шаблона dustjs
Так что у меня проблемы с шаблоном 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"
}
];
и у меня есть этот шаблон пыли:
{#lifeStory}
<div class="myRow">
<div class="DateColumn">
{year} - {month} - {day}
</div>
<div class="lifeEventColumn">
{LifeEvent}
</div>
</div>
{/lifeStory}
Я хочу скрыть DateColumn, если у меня нет свойств года, месяца и дня в моем массиве. Если только один элемент в массиве имеет информацию о дате, я хочу показать DateColumn для всех строк.
Я новичок в пыли, но думаю, что это может потребовать написания специального помощника пыли. Любая помощь будет отличной.
БЛАГОДАРЮ ВАС!!!!
1 ответ
Вы хотите {@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}