{{#checkIf}} helper
An extended version of the #if block helper with support for operators. Useful if you need to compare two arguments in a non-standard way.
An extended version of the #if
block helper with support for operators allows for more complex comparisons between two arguments. This utility is particularly useful when standard equality checks do not suffice.
Supported operators:
Operator | Word Equivalent | Description |
---|---|---|
== | equal | equal to |
!= | different | not equal |
=== | strictEqual | equal value and equal type |
!== | strictDifferent | not equal value or not equal type |
&& | and | logical and |
|| | or | logical or |
< | lesser | less than |
<= | lesserEqual | less than or equal to |
> | greater | greater than |
>= | greaterEqual | greater than or equal to |
contains | - | checks if a value is in an array |
notContains | - | checks if a value is not in an array |
Descriptions of operators:
- equal: Checks if two values are equal.
- different: Checks if two values are not equal.
- strictEqual: Checks if two values are equal in value and type.
- strictDifferent: Checks if two values are not equal in value or type.
- and: Checks if both conditions are true.
- or: Checks if at least one condition is true.
- lesser: Checks if one value is less than another.
- lesserEqual: Checks if one value is less than or equal to another.
- greater: Checks if one value is greater than another.
- greaterEqual: Checks if one value is greater than or equal to another.
- contains: Verifies if an array contains a specific value.
- notContains: Confirms that an array does not contain a specific value.
Syntax:
{{#checkIf ARG_1 OPERATOR ARG_2}}
Code displayed when above condition is true
{{else}}
Code displayed when above condition is false
{{/checkIf}}
Example:
You can use:
{{#checkIf author '&&' author.avatar}}
<img src="{{author.avatar}}" alt="" />
{{/checkIf}}
Instead of:
{{#if author}}
{{#if author.avatar}}
<img src="{{author.avatar}}" alt="" />
{{/if}}
{{/if}}
We can also find out if we are in a particular post by ID; eg. add a code just for the post with ID=10
{{#post}}
{{#checkIf id '==' 10}}
your code here...
{{/checkIf}}
{{/post}}
To check if an array contains a specific value:
{{#each tags}}
{{#checkIf '1,2,3' 'contains' id}}
<a href="{{url}}" class="filter__item">{{name}}</a>
{{/checkIf}}
{{/each}}
So, the first argument is a string separated by commas. The type of the second argument (id) is also detected - if it is a number, the array for comparison purposes is mapped to numbers.
To ensure a value is not within an array:
{{#each tags}}
{{#checkIf '1,2,3' 'notContains' id}}
<a href="{{url}}" class="filter__item">{{name}}</a>
{{/checkIf}}
{{/each}}