Шаблон Handlebars - выражение "тильда" в if

У нас есть оператор вроде:

{{~#if someCondition ~}} 
<div class="whyweneedtildehere"></div> 
{{~/if~}}

В чем разница между простым оператором if и оператором if с "~" в шаблонах дескрипторов?

Ответы

Ответ 1

Он называется тильдой, что может помочь вам в дальнейшем.

Handlebars docs подробно отвечает на ваш вопрос.

Пробел шаблона может быть опущен с любой стороны любых усов с помощью добавления символа фигурными скобками. Когда применяется все пробелы с этой стороны будут удалены до первых рулей выражение или не-пробельный символ с этой стороны.

Ответ 2

Вот несколько примеров, которые могут помочь вам понять, что делает ~.

В .js:

{
  hello: 'Hello, World!',
}

Пример # 1:

.hbs

<div>
  {{hello}}
</div>

.html

<div>
  <h1>Hello, World!</h1>
</div>

Пример # 2:

.hbs

<div>
  {{~hello}}
</div>

.html

<div>Hello, World!
</div>

Пример # 3:

.hbs

<div>
  {{~hello~}}
</div>

.html

<div>Hello, World!</div>

В основном, это для удаления пробелов в выходном HTML.