Handlebars, whitespace control

孤街浪徒 提交于 2019-12-05 12:05:31

问题


i want fine control of whitespace but still have readable templates.

Just wanted to see if other's solution to by simple use case.

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

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

https://github.com/wycats/handlebars.js/issues/479 - submitted a ticket which was closed.


回答1:


Following the history from the pull request to add this feature it looks like this is the correct syntax:

<h4>
{{~#object~}}

Surrounding whitespace would be removed.

{{/object}}
</h4>

Result:

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

There is also this syntax which trims only leading whitespace:

<h4>
{{~#object}}

Only leading whitespace would be removed.

{{/object}}
</h4>

Result:

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



回答2:


Just a comment to Brian answer, If you want to trim whitespace AND do not want handlebars to escape your expression at the same time, the correct syntax to be used is:

{{~{EXPRESSION}~}}

(trimming whitespace before and after the expression while not escaping it)




回答3:


You can add a Handlebars Helper to trim() whitespace

{{#-}}

Surrounding whitespace would be removed.

{{/-}}

more background info: https://github.com/wycats/handlebars.js/pull/336




回答4:


The Handlebar's Whitespace Control Documentation can be found here: http://handlebarsjs.com/expressions.html#whitespace-control

Template whitespace may be omitted from either side of any mustache statement by adding a ~ character by the braces. When applied all whitespace on that side will be removed up to the first handlebars expression or non-whitespace character on that side.

These two, comma-list examples would have the same output:

Case 1:

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

Case 2:

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


来源:https://stackoverflow.com/questions/15953293/handlebars-whitespace-control

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!