0
我有我的Ruby項目文件夾中的文件scripts.js中 - 資產/ JavaScript的,在我試圖呈現一個谷歌地圖。我無法讓我的JavaScript瞭解嵌入的ruby標籤之間的代碼。我應該怎麼做?我覺得像類似的scripts.js中的頁面的頂部聲明的變量會工作,會出現:嵌入式紅寶石JavaScript字符串問題
var map_latitude = <%= @user.lat %>;
var map_longitude = <%= @user.lng %>;
這裏是我的代碼(問題是,5日線):
var map;
var markers = [];
function initialize_google_maps() {
var currentlatlng = new google.maps.LatLng(<%= @user.lat %>, <%= @user.lng %>);
var zoom = <%= @kms_range %> > 9 ? 9 : 10;
var myOptions = {
zoom: zoom,
center: currentlatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP, // ROADMAP, SATELLITE, HYBRID
streetViewControl: false
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = new google.maps.Marker({map: map, position: currentlatlng, icon:{oppacity:0}});
map.setCenter(currentlatlng);
map.setZoom(zoom);
var circle = new google.maps.Circle({
map: map,
fillOpacity: 0,
strokeWeight: 2,
strokeOpacity: 0.7,
radius: <%= @kms_range %>*1000,
});
circle.bindTo('center', marker, 'position');
}
function show_markers() {
if (markers)
for(i in markers) {
markers[i].setMap(map);
}
}
function add_marker(location) {
marker = new google.maps.Marker({
position: location,
map: map
});
markers.push(marker);
// markers.setVisible(false);
}
function initialize_markers() {
<% (@reviews || []).each do |r| %>
<% next unless r.lat && r.lng %>
position = new google.maps.LatLng(<%= r.lat %>, <%= r.lng %>);
add_marker(position);
<% end %>
}
$(function() {
initialize_google_maps();
initialize_markers();
show_markers();
});
我會很感激任何幫助,謝謝。
之前我在哪裏聲明這些變量?因爲如果我把它們放在我的scripts.js中文件的頂部,我的地圖仍然不承認紅寶石值。在Chrome中,如果我CONSOLE.LOG(map_latitude)我得到返回<%= atuser.lat%>,在那裏我應該得到一個動態的緯度值。謝謝。 – CHarris 2013-05-01 14:45:22
的@user變量將需要加載比你javacript首先得到執行,併爲@MrYoshiji指出,您的文件必須以'.erb'結束 – fotanus 2013-05-01 15:00:20