{{,}}
Produces a literal comma (,
) exactly if it is required for valid JSON.
Usage
If conditional expressions follow each other, it can be hard to say whether a comma is needed or not to obtain valid JSON:
<template>
{
{{if maybe }} "foo": "bar" {{end}} {{// place a comma here? }}
{{if perhaps }} "bar": "baz" {{end}} {{// or here? }}
{{: may-be-empty }}
}
</template>
If the first condition is true
, a name/value pair will be produced. If and only if the second condition is true
as well, a comma will be needed to separate both pairs. The same applies to the following pair producer {{: …}}
which may yield nothing.
To avoid having to repeat various combinations of the conditions to decide whether or not to emit a comma, use the comma command {{,}}
to automatically produce all required commas:
<template>
{
{{if maybe }} "foo": "bar" {{end}} {{,}}
{{if perhaps }} "bar": "baz" {{end}} {{,}}
{{: may-be-empty }}
}
</template>
The {{,}}
could be placed in the body of {{if}}
as well:
{{if maybe }} "foo": "bar" {{,}} {{end}}
{{if perhaps }} "bar": "baz" {{,}} {{end}}
📎 Note that the comma may appear after some whitespace in the output string.
The use of the {{,}}
should be seen as a last resort, because it impairs the template's readability. In many cases, the decision whether to place a comma or not can be made a priori by reordering the name/value pairs, producing leading commas in conditionals or having a fixed {{else}}
block.
The {{loop}}
command produces commas between its productions, too. In loop bodies comma commands are allowed but usually not necessary.
Last updated
Was this helpful?