在Meteor.js中渲染之前计算集合数据

时间:2014-03-21 15:14:12

标签: meteor

我是Meteor.js的新手,我想了解基础知识。我想对我的集合中的数据进行一些计算并将其渲染到DOM。它应该使用{{#each}}循环呈现给DOM。我怎么能这样做?

HTML看起来类似于:

{{#each location}}
   <div>{{name}}</div>
   <div>{{calculated_distance}}</div>
{{/each}}

JS:

Template.list.location = function (){
  return Collection.find({
    location : 
      { $near :
        { $geometry :
          { type : "Point",
            coordinates : [long, lat] },                
            $maxDistance: 430
        }}});
}

这只允许我在集合中发布数据。如何访问集合中每个文档的{{calculated_distance}}?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你可以使用帮助者:

Template.list.helpers ({
    calculated_distance: function() {
        var lat = this.location.coordinates.lat;
        var lng = this.location.coordinates.long;

        var someCalculation = ...

        return someCalculation;
    }
});

在帮助程序中,您拥有this的上下文,它将是location集合中的特定元素(当您循环它们时)。在此帮助程序中,您可以计算所需的距离并在HTML中显示它们。就目前而言,您的HTML很好。