我有一个名为events的集合。他们是地理定位的。 我想通过客户端和每个事件之间的距离(通过公路)向客户端显示事件列表。为了计算这一点,我使用HTTP.call来打开以流星方法包装的mapquest API。
我找不到为客户订购结果并保持反应性的好方法(自动显示新事件)。
有什么想法吗?
答案 0 :(得分:1)
您可以“观察”您的事件集合并创建一个新的仅客户端集合(或更改事件集合),该集合具有“distanceFromClient”字段,然后您可以按此排序。
Events = new Meteor.Collection('events');
if (Meteor.isClient) {
GeoEvents = new Meteor.Collection(null);
var eventsObserver = Events.find().observe({
added: function(item) {
item.distanceFromUser = distanceFrom(item);
GeoEvents.insert(item);
}
});
Template.myTemplate.helpers({
events: function() {
return GeoEvents.find({},{sort: {distanceFromUser: 1});
}
});
}