Meteor Blaze {{if}} 语句检查数组

Meteor Blaze {{if}} statement to check if array

我的集合中有一个文档对象 "wageringStraightSpread",它有时是一个嵌入式数组。我需要检查然后查看数组,但我不确定 {{if}} 语句的语法。我专门在 {{#if team.[0].wageringStats.wageringStraightSpread = array}} 这行寻求帮助。谢谢!

这是我得到的:

{{#if team.[0].wageringStats.wageringStraightSpread = array}}
    {{#each}}
           {{team.[0].wageringStats.wageringStraightSpread.this.line}}
           ({{team.[0].wageringStats.wageringStraightSpread.this.money}})
     {{/each}}
 {{else}}
          {{team.[0].wageringStats.wageringStraightSpread.line}}
          ({{team.[0].wageringStats.wageringStraightSpread.money}})
{{/if}}

首先,你的if条件是错误的。它应该是 ==,而不是 =。然而,事实并非如此,因为Meteor模板的if不支持布尔运算。因此,你必须要有一个帮手

Template.layout.helpers({
   checkArray: function() {
      // return the result of the comparison of 
      // team.[0].wageringStats.wageringStraightSpread == array. 
      // you do need to find the way to compare the array since == is also wrong 
      // for comparing the array 
   }
});

{{#if checkArray}}

{{/if}}

您可以创建一个 isArray 助手来执行检查:

Template.layout.helpers({
  isArray: function(a){
    return Array.isArray(a);
  }
});

并从您的 html 中使用它:

{{#if isArray someVariable}}