嘿,我正在寻找从marker参数获取vnote_id。现在,当我点击地图上的特定标记时,我总是得到所有标记的最后一个vnote_id
我无法访问此标记.vnote_id只能访问marker.title
@vnote_hash = Gmaps4rails.build_markers(@vnote) do |vnote, marker|
marker.lat vnote.latitude
marker.lng vnote.longitude
marker.title vnote.id.to_s
marker.json({vnote_id: vnote.id })
handler = Gmaps.build('Google');
handler.buildMap({ provider: { minZoom: 3, maxZoom: 200,zoom: 5,scrollwheel: false }, internal: {id: 'map'}}, function(){
var marker, _i, _len;
markers = handler.addMarkers(<%=raw @vnote_hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
for (_i = 0, _len = markers.length; _i < _len; _i++) {
marker = markers[_i];
google.maps.event.addListener(marker.getServiceObject(), 'click', function(evt) {
$.get('http://localhost:3000/vnote/popup_vnote_info', { vnote_id: marker.getServiceObject().title });
return console.log(handler.getMap().getBounds().getNorthEast().toString());
});
}
});
答案 0 :(得分:1)
你所有的json都在<%=raw @vnote_hash.to_json %>
所以:
var raw_json = <%=raw @vnote_hash.to_json %>;
markers = handler.addMarkers(raw_json);
在你的循环中:
raw_json[i].vnote_id
另一种方法是合并对象属性,以便只使用一个对象。