Подтвердить что ты не робот

Рукоятки, управление пробелами

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

Просто хотел посмотреть, есть ли другое решение для простого использования.

{{name}}
{{#if age}}
  , {{age}}
{{/if}}

# outputs {{name}} , {{age}}
# desire: {{name}}, {{age}}

https://github.com/wycats/handlebars.js/issues/479 - отправил билет, который был закрыт.

4b9b3361

Ответ 1

Следуя истории запроса на добавление этой функции, похоже, это правильный синтаксис:

<h4>
{{~#object~}}

Surrounding whitespace would be removed.

{{/object}}
</h4>

Результат:

<h4>Surrounding whitespace would be removed.</h4>

Существует также этот синтаксис, который обрезает только начальные пробелы:

<h4>
{{~#object}}

Only leading whitespace would be removed.

{{/object}}
</h4>

Результат:

<h4>Only leading whitespace would be removed.
</h4>

Ответ 2

Просто комментарий к ответу Брайана. Если вы хотите обрезать пробелы И не хотите, чтобы руль одновременно экранировал ваше выражение, используйте правильный синтаксис:

{{~{EXPRESSION}~}}

(обрезать пробелы до и после выражения, но не экранировать его)

Ответ 3

Вы можете добавить помощника Handlebars в trim() whitespace

{{#-}}

Surrounding whitespace would be removed.

{{/-}}

дополнительная информация: https://github.com/wycats/handlebars.js/pull/336

Ответ 4

Документацию по контролю за использованием руля можно найти здесь: http://handlebarsjs.com/expressions.html#whitespace-control

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

Эти два примера со списком запятых будут иметь одинаковый вывод:

Случай 1:

  {{#each listItems as |item index|}}
    {{#if (eq index 0)}}
      {{~item.name~}}
    {{else~}}
      , {{item.name~}}
    {{/if}}
  {{/each}}

Случай 2:

  {{#each listItems as |item index|}}
    {{#if (eq index 0)~}}
      {{item.name}}
    {{~else~}}
      , {{item.name}}
    {{~/if}}
  {{/each}}