dbo*_*man 9 javascript ruby-on-rails asset-pipeline
我添加了将谷歌地图加载到我的页面所需的JavaScript:
<% content_for :head do %>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=false">
</script>
<script type="text/javascript">
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(<%=@lat%>, <%=@lon%>),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
}
</script>
<% end %>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我需要在加载地图时传递参数纬度和经度.正如我在标题中所说,我想将这些javascripts放入资产管道中,是否有可能如何?谢谢
dee*_*our 13
您不应在Google资源管道生成的application.js文件中包含Google Maps API .相反,它应该作为单独的<script>标记包含在您application.js的标记之前<script>.
然后,您可以将initialize()方法添加到资产管道中包含的任何文件中,包括application.js其自身.
你可能想要制作你的方法@lat和@lon参数,initialize所以它们可以在你的页面中定义<head>.例如,你可能有
<head>
<script src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=false"></script>
<%= javascript_include_tag "application" %>
<script>
var latitude = <%= @lat %>;
var longitude = <%= @lon %>;
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
在您的application.js文件中,您可能有
function initialize(latitude, longitude) {
var mapOptions = {
center: new google.maps.LatLng(latitude, longitude),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
}
$(function() {
initialize(latitude, longitude);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3307 次 |
| 最近记录: |