stringhandlebars.jslogical-operators

Handlebarsjs check if a string is equal to a value


Is it possible in Handlebars to check if a string is equal to another value without registering a helper? I can't seem to find anything relevant to this in the Handlebars reference.

For example:

{{#if sampleString == "This is a string"}}
...do something
{{/if}}

Solution

  • It seems you can't do it "directly"

    Try use helper, why not?

    Register helper in your javascript code:

    Handlebars.registerHelper('ifEquals', function(arg1, arg2, options) {
        return (arg1 == arg2) ? options.fn(this) : options.inverse(this);
    });
    

    Use in template:

    {{#ifEquals sampleString "This is a string"}}
        Your HTML here
    {{/ifEquals}}
    

    More details here: Logical operator in a handlebars.js {{#if}} conditional

    Update: Another way:

    lets assume, your data is:

    var data = {
        sampleString: 'This is a string'
    };
    

    Then (using jQuery):

    $.extend(data, {isSampleString: function() {
        return this.sampleString ==  'This is a string';}
    });
    

    An use template:

    {{#if isSampleString}}
        Your HTML here
    {{/if}}