Метеорные рули: Как правильно в условиях сравнивать две переменные?


Я не могу придумать способ сделать что-то подобное в шаблоне с Meteor и Handlebars:

{{#if var1 == var2}}
{{/if}}

Я также настроил помощников Meteor Handlebars , и это, кажется, тоже не работает , хотя это должно :

{{#if $eq var1 var2}}
{{/if}}

Итак, каков ваш правильный способ сравнить две переменные с рулями в шаблоне?

EDIT: на самом деле, это, кажется, выходит за рамки идеологии руля, которая заключается в том, чтоне должно быть никакой логики в шаблонах .

1 2

1 ответ:

На данный момент это не так просто, как вы могли бы представить. Я думал, что читал, что это, возможно, особенность в meteor 1.0.

У вас есть 3 следующие возможности:

Html:

<template name="stuff">
  {{#if isTrue}}
    ...
  {{else}}
    ...
  {{/if}}
</template>

Js:

Template.stuff.helpers({
  isTrue: function () {
    return var1 === var2;
  }
});

Еще одна возможность-предоставить собственный помощник руля:

Html:

{{compare "var1" "var2"}}

Js:

Handlebars.registerHelper('compare', function(var1, var2) {
  return var1 === var2;
});

Или вы используете любой другой пакет Handlebars-helper, где кто-то уже сделал работу за вас. Я не знаю, какой пакет вы использовали, поэтому не могу дать подробную информацию. решение вашей проблемы, но, возможно, вы получите хороший взгляд на то, как это может быть реализовано.