2015-05-19 5 views
2

Я хочу, чтобы сравнить значения базы данных для DATATYPE = [ 'Текст', 'Boolean' Number ']Как сравнить две переменные в метеоритный HTML

Уже пробовал эти два метода

Метод 1: https://github.com/raix/Meteor-handlebar-helpers

{#each variant}} 
      <li> 
     {{#each VARIENTS}} 
       {{this.NAME}} 
       {{this.DATATYPE}} 

      {{#if $eq {{this.DATATYPE}} "Text"}} 
    Show this text 
{{/if}} 

      {{/each}} 
      </li> 
      {{/each}} 

Не работает Способ 2: JS файла:

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

Вы можете зарегистрировать глобальных помощников с '' 'Template.registerHelper (" compare ", function (var1, var2) {})' ''. Какую версию метеора вы используете? –

+0

Release 0.7.0.1 – garima

ответ

1

Поскольку вы хотите сравнить массив со значением, вы должны создать некоторый цикл в зарегистрированном помощнике - очевидно, вы не можете сопоставить массив с строкой. И в HTML это должно быть как

{{#if compare this.DATATYPE 'value'}} 

Я предполагаю, что вы хотите использовать его более чем один раз, если не просто создать регулярный помощник

EDIT

О, если VARIENTS является массив, то ваш помощник ок, вы просто использовали переменную DATATYPE в различных контекстах

Кроме того, ваш первый пример должен работать, если удалить усики в {{}} this.DATATYPE

+0

я пытался без усов, также не работает – garima

+0

попробовал ваше решение не работает – garima

+0

{{#if сравнить this.DATATYPE «Текст»}}

Да это текст

{{/, если}} – garima

1

Обработка и логика никогда не должны выполняться в html! Сделайте это в помощнике и верните коллекцию.

Template.body.helpers({ 
    VARIENTS2: function() { 
    var x = Varients.find({}, { sort: { rank: -1}}); }; 
    var y = []; 
    var type; 
    switch(this.DATATYPE) { 
     case "text": type = "t"; break; 
     case "boolean": type = "b"; break; 
     case "value": type = "blah"; break; 
    } 
    y.push(type); 
    return y; 
}); 
+0

Логика не в HTML, это помощник с аргументами – Sindis

Смежные вопросы