Dustjs - Проверьте условие относительно ВСЕХ элементов в массиве с помощью шаблона dustjs - PullRequest
0 голосов
/ 05 декабря 2018

Так что у меня возникли проблемы с шаблоном 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"
    }
];

, и у меня есть этот шаблон dustjs:

{#lifeStory}
<div class="myRow">
    <div class="DateColumn">        
        {year} - {month} - {day}
    </div>
    <div class="lifeEventColumn">
        {LifeEvent}
    </div>
</div>
{/lifeStory}

Я хочу скрыть DateColumn, если у меня нет свойств года, месяца и дня в моем массиве. Если только один элемент в массиве имеет информацию о дате, я хочу показать DateColumn для всех строк.

Я новичок в пыли, но думаю, что это может потребовать написания специального помощника пыли,Любая помощь будет отличной.

СПАСИБО !!!!

1 Ответ

0 голосов
/ 07 декабря 2018

Вам нужен помощник {@any}.Этот помощник будет выполнен, если выполнено любое из условий, которые вы тестировали.

Мы проверим наличие любых полей даты и выведем строку, если они существуют.

Потому что пыльимеет какое-то сомнительное принуждение для проверок на равенство, мы приведем все к строкам и проверим, равны ли они "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}
...