Gmaps4rails получает детали маркера при нажатии на конкретный маркер на карте в ruby ​​on rails4

Эй, я ищу получить vnote_id из параметра маркера. Теперь я всегда получаю последний vnote_id всех маркеров, когда я нажимаю на конкретный маркер на карте

я не могу получить доступ здесь marker.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());

            });             
        }
});

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

Альтернативой является объединение свойств объекта, чтобы вы использовали только один объект.

Другие вопросы по тегам