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}
Другие вопросы по тегам