0
我有一個shop
模型。我想輸出一個簡單的警報框,當我點擊地圖上的商店標記時,使用javascript顯示shop
名稱。gmaps4rails:如何從控制器檢索json值?
這是我的代碼:
# controller
@json = Shop.all.to_gmaps4rails do |shop, marker|
marker.json({ id: shop.id, name: shop.name })
end
# view
<%= gmaps("map_options" => { auto_zoom: false, zoom: 2, class: "homepage-map" },
"markers" => { data: @json,
options: { do_clustering: true,
clusterer_maxZoom: 11,
raw: "{ animation: google.maps.Animation.DROP }" }
})
%>
<% content_for :scripts do %>
<script type="text/javascript" charset="utf-8">
Gmaps.map.callback = function() {
for (var i = 0; i < this.markers.length; ++i) {
google.maps.event.addListener(Gmaps.map.markers[i].serviceObject, 'click', function() {
alert(put something here);
});
}
};
</script>
<% end %>
這是我第一次處理JSON,所以我讀過關於JSON一些介紹性的文章,也json in javascript。我想知道這是如何完成與gmaps4rails。
感謝的人,它的作品!然而,如果我做一些複雜的事情來顯示所有屬於商店的衣服,它會在頁面加載期間爲每個商店運行sql'SELECT'語句,使其不可擴展。當用戶完成縮放時,我只能加載某些標記,但如果要以縮放級別2顯示整個世界,則此策略不起作用。您是否對此有任何一般性建議? – 2012-07-30 12:19:54
我通常用ajax加載標記(帶分頁)。 – apneadiving 2012-07-30 13:28:19
這超出了我目前的技能。我猜想僱用某人的時間... – 2012-08-02 21:46:27