TypeError: this.clusterer is undefined after Rails Model name change
TypeError: this.clusterer is undefined after Rails Model name change
我更改了我的模型和控制器名称及其所有连接的数据 + 文件名。一切正常,除了我的 JS GoogleMaps API 大喊:
TypeError: this.clusterer is undefined
问题是 - 我再次尝试预编译我的资产,我搜索了所有文件但找不到答案。
你知道所有资产都在哪里 held/changed 被抽成吗?我应该去哪里寻找答案?
我的控制器:
def index
@hunts = Hunt.all
@hash = Gmaps4rails.build_markers(@hunts) do |hunt, marker|
marker.lat hunt.latitude
marker.lng hunt.longitude
marker.infowindow hunt.email
end
end
查看:
<script src="//maps.google.com/maps/api/js?v=3.13&sensor=false&libraries=geometry" type="text/javascript"></script>
<script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js' type='text/javascript'></script>
<%= javascript_include_tag 'hunt_map'%>
和 JS:
handler = Gmaps.build('Google');
handler.buildMap(
{
provider: {
center: new google.maps.LatLng(50.0636153, 19.9317813),
zoom: 13
},
internal: { id: 'map' }
},
function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.fitMapToBounds();
handler.addCircles(
[{ lat: 50.0636153, lng: 19.9317813, radius: 5}],
{ strokeColor: "#000" });
});
handler.addMarkers([
{
"lat": 50.0636153,
"lng": 19.9317813,
"picture": {
"url": "http://www.tamu.edu/faculty/ccbn/dewitt/adp/resources/images/shamrock.gif",
"width": 36,
"height": 36
},
"infowindow": "Treasure lies here!"
}
]);
更新:
我的 config/initializers/assets.rb
Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.precompile += %w( hunt_map.js )
您无法将数据传递给位于 assets
的 JavaScript。这就是为什么你在地图上看不到你的点数,因为 nil
是在这一行
中传递的
markers = handler.addMarkers(<%=raw @hash.to_json %>);
解决您问题的最简单方法是将那个 js 直接放在 viewer
中。为了以更优雅的方式制作它,请检查此 railcast episode.
发生此 TypeError: this.clusterer is undefined
是因为您试图在 function(){...}
之外调用 handler.addMarkers(...)
。只需将其移回那里,错误就会消失。
我更改了我的模型和控制器名称及其所有连接的数据 + 文件名。一切正常,除了我的 JS GoogleMaps API 大喊:
TypeError: this.clusterer is undefined
问题是 - 我再次尝试预编译我的资产,我搜索了所有文件但找不到答案。 你知道所有资产都在哪里 held/changed 被抽成吗?我应该去哪里寻找答案?
我的控制器:
def index
@hunts = Hunt.all
@hash = Gmaps4rails.build_markers(@hunts) do |hunt, marker|
marker.lat hunt.latitude
marker.lng hunt.longitude
marker.infowindow hunt.email
end
end
查看:
<script src="//maps.google.com/maps/api/js?v=3.13&sensor=false&libraries=geometry" type="text/javascript"></script>
<script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js' type='text/javascript'></script>
<%= javascript_include_tag 'hunt_map'%>
和 JS:
handler = Gmaps.build('Google');
handler.buildMap(
{
provider: {
center: new google.maps.LatLng(50.0636153, 19.9317813),
zoom: 13
},
internal: { id: 'map' }
},
function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.fitMapToBounds();
handler.addCircles(
[{ lat: 50.0636153, lng: 19.9317813, radius: 5}],
{ strokeColor: "#000" });
});
handler.addMarkers([
{
"lat": 50.0636153,
"lng": 19.9317813,
"picture": {
"url": "http://www.tamu.edu/faculty/ccbn/dewitt/adp/resources/images/shamrock.gif",
"width": 36,
"height": 36
},
"infowindow": "Treasure lies here!"
}
]);
更新: 我的 config/initializers/assets.rb
Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.precompile += %w( hunt_map.js )
您无法将数据传递给位于 assets
的 JavaScript。这就是为什么你在地图上看不到你的点数,因为 nil
是在这一行
markers = handler.addMarkers(<%=raw @hash.to_json %>);
解决您问题的最简单方法是将那个 js 直接放在 viewer
中。为了以更优雅的方式制作它,请检查此 railcast episode.
发生此 TypeError: this.clusterer is undefined
是因为您试图在 function(){...}
之外调用 handler.addMarkers(...)
。只需将其移回那里,错误就会消失。