Условия в Handlebars Express

С помощью команды {{#if}} можно сделать так, чтобы определенный текст был показан, если некоторая переменная имеет значение true, и скрыт, если false. Давайте посмотрим на примере.

Пусть в представление передается некоторая логическая переменная:

javascriptapp.get('/page/', function(req, res) {
  res.render('page', {
    show: true
  });
});

Давайте покажем некоторый текст, если значение нашей переменной равно true:

views/page.hbs<div>
  {{#if show}}
    <p>hello</p>
  {{/if}}
</div>

Команда else

Можно также использовать команду {{else}}, чтобы показать или один, или второй текст:

views/page.hbs<div>
  {{#if show}}
    <p>text1</p>
  {{else}}
    <p>text2</p>
  {{/if}}
</div>

Команда unless

Команда {{#unless}} обратна команде {{#if}}, то есть показывает текст, если значение переменной ложно:

views/page.hbs<div>
  {{#unless show}}
    <p>text1</p>
  {{/unless}}
</div>

Практические задачи

Задание 1

Пусть в представление передаются следующие переменные:

javascriptres.render('page', {
  show1: true,
  show2: false,
  show3: true,
});

Пусть у нас есть три блока:

views/page.hbs<div>
  block 1
</div>
<div>
  block 2
</div>
<div>
  block 3
</div>

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

Замечание

Описанные команды могут проверять переменные только на истину или ложь. Более сложные условия недоступны.