我試圖讓Google Maps 'Hello World'工作在ROR 3.1使用下面的代碼:谷歌地圖和ROR 3.1
在應用程序/資產/ Java腳本/ application.js中
$(document).ready(function(){
initialize($("div#map_canvas").get(0));
});
function initialize(element) {
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(element, myOptions);
alert("test");
}
在
我的模型視圖部分應用程序/視圖/遊戲機/ _ride.html.erb
<li>
<div id="map_canvas" style="width:100%; height:100%"></div>
</li>
我有這樣的應用程序/視圖/佈局/ application.html.erb
<%= javascript_include_tag :application,
"http://maps.googleapis.com/maps/api/js?sensor=false" %>
我是新來ROR所以用我做錯了任何幫助表示讚賞。它似乎正在運行JavaScript(警報消息出現),但地圖從不顯示。
謝謝。
感謝您的幫助。通過傳遞'$(「div#map_canvas」)。get(0)'到我的'initialize()'函數我想我現在正在傳遞一個HTML DOM元素而不是jQuery對象。不過,我不明白你說我的javascript_include_tag是錯的。此外,儘管你和文檔說,如果我刪除'應用程序'生成的HTML不包括該鏈接。 googleapis的鏈接似乎很好。還有什麼想法? – user836003
完美,jQuery的獲取是你需要的。當您將絕對路徑傳遞給javascript_include_tag助手時,它會將該屬性作爲js文件的src屬性。然而,你需要的是一種將params傳遞給包含javascript文件的請求的方法。從上面的帖子可以看出,如果你嘗試了兩個提到的東西,你會發現生成的HTML會有所不同。 –
該幫助程序會將.js添加到傳遞的路徑(在參數與URL一起傳遞的URL之後的.js)。如果你檢查生成的HTML,它會顯示那不是你想要的。 –