如何比较meteor HTML

时间:2015-05-19 11:49:42

标签: javascript html meteor

我想将数据库值与DATATYPE = [' Text',' Boolean,' Number']

进行比较

已经尝试过这两种方法

方法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

2 个答案:

答案 0 :(得分:1)

由于你想要将数组与值进行比较,你应该在已注册的帮助器中创建一些循环 - 显然你不能将数组与字符串匹配。 在HTML中,它应该像

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

我假设您不止一次使用它,如果不是只创建常规帮助

修改

哦,如果VARIENTS是数组,那么你的助手就可以了,你只是在不同的上下文中使用了DATATYPE变量

如果您删除{{this.DATATYPE}}中的胡须,

也可以使用您的第一个示例

答案 1 :(得分: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;
});