我是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}}?
答案 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很好。