2013-11-04 76 views
3

我正在升级到gmaps4rails v2。我似乎无法从JavaScript访问标记json属性。这曾在以前的版本我是用(1.5.6)从标记访问json属性 - gmaps4rails

具体

Buidling在控制器: @users = User.all

@hash = Gmaps4rails.build_markers(@users) do |user, marker| 
    marker.lat user.latitude 
    marker.lng user.longitude 
    marker.json({link: "someurl", current: true}) 
end 

而且在javascript:

handler = Gmaps.build('Google'); 
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){ 
    markers = handler.addMarkers(<%=raw @hash.to_json %>); 
    console.log(markers[0].link); 
    console.log(markers[1].current); 
    handler.bounds.extendWith(markers); 
    handler.fitMapToBounds(); 
}); 

>undefined 
>undefined 

谢谢

回答

3

这确实是新的行为:它doe不会改变物体,选择是你的。

你可以这样做:

markers_json = <%=raw @hash.to_json %>; 
markers = _.map(markers_json, function(marker_json){ 
    marker = handler.addMarker(marker_json); 
    _.extend(marker, marker_json); 
    return marker; 
}); 
+0

感谢您的快速反应 – cgat

+0

欢迎您!我知道这对于1.x用户可能会很痛苦,所以我尽量留意一下stackoverflow :) – apneadiving