我有一个在我的流星应用程序中显示地图的模板。该模板用于两件事:
- 在地图上显示我的应用程序的搜索结果
- 一旦用户选择了一个特定场所,就显示一个特定场所的单独位置
目前我的代码如下(我没有关于这个模板的其他功能或助手):
Template.map.rendered = function() {
if(!map)
var map = new Course_map('#map');
Deps.autorun(function(){
if (Session.get("current_place")){
var places = Places.find(Session.get("current_place")).fetch();
}
else{
var places_cursor = get_searched_places();
if (places_cursor){
var places = places_cursor[0].fetch();
var places_id = _.pluck(places,'_id');
//Remove the markers that are no longer in the places_id array
map.remove_markers(places_id);
}
}
if(places){
// Add all the marker in places
for(var i = 0, places_length = places.length; i < places_length; i ++){
map.add_marker(places[i]);
}
// Recenter the map to focus on the marker area
map.calc_bounds();
}
});
};
我的地图模板:
<template name="map">
<div id="map" class='google-map'>
</div>
根据用户是否使用 Session.get("current_place") 我选择了一个地点,我在我的地点变量中加载了不同的信息。
我真的不喜欢那种设计,我想我可以找到一种更好的方法来做我想做的事情。你有什么建议吗 ?