在Meteor中使用helper迭代并发布数组值

时间:2015-10-16 21:44:16

标签: meteor

我将Yelp Search API的结果导入Meteor.js应用中的客户端集合。我成功地将结果插入到客户端集合中(结果仅临时存储)。从浏览器控制台:

Object {region: Object, total: 3720, businesses: Array[10]}

businesses数组包含我希望传递给模板助手并显示在表格中的10个结果:

businesses: Array[10]
0: Object
1: Object
2: Object
3: Object
4: Object
5: Object
6: Object
7: Object
8: Object
9: Object

数组中的每个对象都包含字段,甚至包含更多数组,例如" name"和#34;星星",我需要在表格中访问。

我已经成功获得帮助者来访问该文档(使用regiontotalbusinesses),但我无法获得下方的值它。就我而言:

Template.YelpAdd.helpers({    
results: function () {
            return YelpSearchResults.find().businesses;
        }
});

在模板中:

<table>
          <tr>
              <th>Name</th>
              <th>Type</th>
              <th>Neighborhood</th>
              <th>Address</th>
          </tr>
          {{#each results}}
                  <tr>
                      <td>{{name}}</td>
                       <td>...</td>
                       <td>...</td>
                       <td>...</td>
                  </tr>
          {{/each}}
</table>

我知道这是可能的,我只是陷入困境。也许有另一种方法可以通过在将结果插入YelpSearchResults客户端集合之前操纵结果来完成此操作。

1 个答案:

答案 0 :(得分:1)

find返回一个游标。听起来你想要findOne返回一个文档(可以用来访问businesses列表)。试一试:

Template.YelpAdd.helpers({    
  results: function() {
    var yelpResult = YelpSearchResults.findOne();
    return yelpResult && yelpResult.businesses;
  }
});

请注意,我添加了guard,以防首次运行帮助时yelp结果无法实现。