Patrick Canfield
Patrick Canfield

Reputation: 1655

Meteor: Whats the best way to test equality of two values (like {{#if someVar == 'someVal'}}) in Blaze?

I'm having to define template helpers everywhere that simply test the equality of a document property with a constant so I can do something like this in my template:

    {{#if fruitIsPineapple}}...{{/if}}

And in my template helper looks like:

    Template.example.helpers({
      fruitIsPineapple: function () { return this.document.fruit === 'pineapple'; } 
    });

How can I save myself from having to create all these helpers? It'd be nice if there we an equality operator in Blaze...

Upvotes: 18

Views: 10613

Answers (2)

Patrick Canfield
Patrick Canfield

Reputation: 1655

I had my question answered at the Meteor Devshop. Turns out you can define a Handlebars helper, like so:

    Template.registerHelper('equals', function (a, b) {
      return a === b;
    });

Then use it in prefix position like this:

    {{#if equals fruit 'pineapple'}}...{{/if}}

Upvotes: 50

jasenkoh
jasenkoh

Reputation: 4161

Without any cumbersome code, you can achieve this by installing raix:handlebar-helpers and do something like this:

{{#if $eq a b}}
   ...
{{ /if }}

Upvotes: 16

Related Questions