Javascript 当我从application.html.erb获取js代码并将其放入自己的文件中时,js代码不再工作
我正在application.html.erb中加载Google地图API。我还有一些JS代码,它执行与GoogleMapsAPI的实际通信。当我在application.html.erb的脚本标记中包含这段代码时,它工作得很好,我看到了我请求的映射。但是,当我将其移动到apicombiner.js.coffee中时,浏览器中出现了一个错误,告诉我Javascript 当我从application.html.erb获取js代码并将其放入自己的文件中时,js代码不再工作,javascript,ruby-on-rails,Javascript,Ruby On Rails,我正在application.html.erb中加载Google地图API。我还有一些JS代码,它执行与GoogleMapsAPI的实际通信。当我在application.html.erb的脚本标记中包含这段代码时,它工作得很好,我看到了我请求的映射。但是,当我将其移动到apicombiner.js.coffee中时,浏览器中出现了一个错误,告诉我error:function initialize()中的保留字“function”{....apicombiner.js.coffee应在加载api
error:function initialize()中的保留字“function”{...
.apicombiner.js.coffee应在加载apicombiner控制器中的任何页面时自动编译为application.js,并且此特定页面是apicombiner_控制器中的“索引”视图
我尝试将js转换为coffeescript并重新加载页面。我不再收到错误,但地图没有出现。我只得到了一个白色页面。我还尝试将文件扩展名从.js.cofee重命名为only.js。结果没有错误,而是一个白色页面
以下是javascript代码:
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
以下是咖啡脚本版本,由Js2coffee.org翻译:
initialize = ->
mapOptions =
center: new google.maps.LatLng(-34.397, 150.644)
zoom: 8
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions)
return
google.maps.event.addDomListener window, "load", initialize
顺便说一下,视图代码非常简单
确保JS代码以正确的顺序加载在您自己的东西之前定义,然后它就可以中断。确保它与内联的顺序相同。控制台中有错误吗?@deep有错误,但现在没有错误。我可以尝试复制它们。您使用rails 4和turbolink吗?您的代码在我看来很好。@deep是的。我也很困惑。我现在要去一个rails类,希望我能我不确定我是否解决了这个问题,但无论如何我都会接受你的回答。