我是Meteor / Handlebars的新手,使用包含这两个助手的流星包https://atmospherejs.com/aldeed/plans-stripe。
AppPlans.listDefined() - to get the list of all our plans
- ["free", "monthly", "yearly"]
AppPlans.get() - to see which plan the user currently has.
- ["free"]
和https://github.com/raix/Meteor-handlebar-helpers有这个有用的帮手:
{{$eq a b}} if a equals b then return true
我在我的HTML中显示计划如下:
{{#each AppPlans.listDefined}}
<strong>{{this}}</strong>
{{/each}}
但我想做的就是这样;哪个不起作用
{{#each AppPlans.listDefined}}
{{#if $eq AppPlans.listDefined AppPlans.get}}
<strong>{{this}}</strong>
{{else}}
<span>{{this}}</span>
{{/if}}
{{/each}}
解决此问题的最佳方法是什么?
答案 0 :(得分:0)
您目前正在比较两个阵列,而不是两个标量。 $eq
不起作用。由于您正在遍历计划,因此您实际想要查看当前(标量)计划this
是否位于当前用户的计划的数组中。
{{#each AppPlans.listDefined}}
{{#if $inArray this AppPlans.get}}
<strong>{{this}}</strong>
{{else}}
<span>{{this}}</span>
{{/if}}
{{/each}}
然后是$inArray
帮助者:
Template.registerHelper('$inArray',function(s,a){
return a.indexOf(s) > -1;
});