Is there a way to do logic operation in {{#if}} statement? I was hoping for something like:
{{#if A && B}}
some html
{{/if}}
I couldn’t find documentation about logic in blaze, so I guess it’s not supported. I just wanted to be sure. Sorry for the rather stupid question...
As Billy Bob suggests, you would need parameterized helpers. Here are two global helpers you could use in any context:
Template.registerHelper('and',(a,b)=>{
return a && b;
});
Template.registerHelper('or',(a,b)=>{
return a || b;
});
Then you could use these with:
{{#if and a b}}
a and b are both true-ish
{{/if}}
{{#if or a b}}
a or b is true-ish
{{/if}}
Spacebars is designed to avoid including logic operations in the html. But it does not mean you can't have one : you need to use helpers. Basically, you have 2 conditional cases:
The simple {{#if something}}
and its twin {{#unless something}}
(understand it as "if not"). This is what you want, and your helper would look like this
Meteor.yourTemplate.helpers({
something : function () {
return A && B
}
});
The more complicated {{#if something 'value'}}
where you use an argument for your something
helper :
Meteor.yourTemplate.helpers({
something : function (value) {
if (value === true){
return true
} else {
return false
}
});
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