> ## Content Index
> Fetch the complete content index at: https://getpublii.com/dev/llms.txt
> Use this file to discover other available public pages before exploring further.

# {{#checkIf}} helper

- URL: https://getpublii.com/dev/checkif-helper/
- Published: 2017-08-04T22:14:19.398Z
- Updated: 2024-03-04T08:46:46.074Z
- Description: 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…
- Author: Tomasz Dziuda
- Tags: Helpers

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:

```handlebars
{{#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:

```handlebars
{{#checkIf author '&&' author.avatar}}
    <img src="{{author.avatar}}" alt="" />
{{/checkIf}}
```

Instead of:

```handlebars
{{#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

```handlebars
{{#post}}
   {{#checkIf id '==' 10}}
         your code here...
   {{/checkIf}}
{{/post}}
```

To check if an array contains a specific value:

```handlebars
{{#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:

```handlebars
{{#each tags}}
   {{#checkIf '1,2,3' 'notContains' id}}
       <a href="{{url}}" class="filter__item">{{name}}</a>
   {{/checkIf}}
{{/each}}
```
