是否可以在车把内转义字符?

Is it possible to escape a character inside a handlebar?

我希望能够在 handlabars.js 中插入一个逗号,例如:{{ JOURNAL \, }} 为每个存在的项目呈现一个逗号,因此不会出现无意义的逗号到一个不存在的键值对。谢谢大家!

{{#each items}}
 <button class="accordion-button"
     {{#if (equals type "article")}}  {{AUTHOR}} {{TITLE}} {{JOURNAL}}, {{VOLUME}}({{NUMBER}})  {{MONTH}} {{YEAR}}                        {{/if}}
 </button>    
{{/each}}

您可以检查 JOURNAL 是否存在。然后包括它和尾随逗号(仅当它包含时)。

{{#if JOURNAL}}{{JOURNAL}}, {{/if}}

您还可以创建自己的自定义助手:

Handlebars.registerHelper('ifExistAddComma', function (str) {
    return str === undefined ? '' : `${str}, `;
})
{{ifExistAddComma JOURNAL}}

playground

编辑:您可以编写一个更复杂(但也更通用)的自定义助手,以使用自定义分隔符连接任意数量的参数:

Handlebars.registerHelper('join', function (delim, ...args) {
  args.pop() // remove meta information
  return args
    .filter(arg => arg !== undefined) // filter out undefined properties
    .join(delim);
})
{{join ', ' AUTHOR TITLE JOURNAL (join '' VOLUME '(' NUMBER ')') MONTH YEAR}}
author, title, journal, volume(number), month, year

playground