Meteor Handlebars:{{#each}}块中的数组值

时间:2016-04-11 15:18:57

标签: javascript meteor handlebars.js

我是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}}

解决此问题的最佳方法是什么?

1 个答案:

答案 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;
});