I'm wondering if it is possible to nest multiple if/else statements using handlebars? All my attempts so far have resulted in compile errors, what I'd like to do is as follows:
{{if address}}
<ul>
<li>address.line1</li>
<li>address.line2</li>
{{if address.line3}}<li>address.line3</li>{{/if}}
{{if address.line4}}<li>address.line4</li>{{/if}}
{{else}}
No address given
{{/if}}
Is what I'm attempting here achievable? It always results in parser errors, thusfar I've got around it by writing a helper to deal with spitting out the address (which deals with conditionality of line3/line4 in javascript):
{{if address}}
{{formatAddress address}}
{{else}}
No address given
{{/if}}
While this works, it would be nice not to have to write a helper function for every instance of this sort of simple conditionality.
Handlebars supports {{else if}} blocks as of 3.0. 0. looking at this again, I feel this can be done through attribute bindings.
{{if}} is used to check whether a field has a value or not, whereas {{compare}} is used to check whether a field has one value or another value. Check out our Handlebars helper reference for more information on handlebars {{compare}}, {{if}}, and other handlebars expressions!
You can iterate over a list using the built-in each helper. Inside the block, you can use this to reference the element being iterated over. You can use the this expression in any context to reference the current context. You can optionally provide an else section which will display only when the list is empty.
dwt extension is used to indicate a template.
I believe ifs need a preceding #
Try this.
{{#if address}}
<ul>
<li>address.line1</li>
<li>address.line2</li>
{{#if address.line3}}<li>address.line3</li>{{/if}}
{{#if address.line4}}<li>address.line4</li>{{/if}}
</ul>
{{else}}
No address given
{{/if}}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With