我想将数据库值与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
答案 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;
});