googleMaps appears in grey after refresh page

被刻印的时光 ゝ 提交于 2020-01-06 20:02:04

问题


i am a beginner in backbone and node js, i have added google maps to my template using these commands:

script(src='/lib/google-maps/lib/Google.js')
script(src='http://maps.googleapis.com/maps/api/js')
script(src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js')
div.googleMap( style='width: 250px; height: 250px;')

and in my views :

mod.mapTemplate = Marionette.ItemView.extend({
template: '#actors-map-template',
initialize: function () {
  var mapProp = this.model.get('mapProp');
  map = new google.maps.Map(this.$el[0], this.model.get('mapProp'));
  }
});

i have added many unction like:

     google.maps.event.trigger(map, 'resize');

or

 google.maps.event.addDomListener(window, 'resize', function () {
    map.setCenter(mapProp.center);
  });

bu in vain, the same thing: google Maps appears for the second time but in grey. The problem is the variable rmiURL of map is undefined for the second time, while in the first time it contains this URLttps://www.google.com/maps/@38.9891271,1.2130107,6z/data=!10m1!1e1!12b1?source=apiv3&rapsrc=apiv3 and for the HTML : after my div it generates another div with class 'gm-style' and in the second time he doesn't


回答1:


for those having the same problem here is the solution i found :

initMap: function () {
  this.$el.addClass('temp');
  $('body')
    .append(this.$el);
  var mapProp = this.model.get('mapProp');
  this.map = new google.maps.Map(this.$el.find('.map-canvas')[0],
    mapProp);
  this.$el.remove();
  this.$el.removeClass('temp');
},
render: function () {
  this.$el.html(_.template($('#actors-map-template')
    .html()));
  this.initMap();
},

and in the view :

.map-canvas(style='width: 250px; height: 250px;') .temp(style='position: absolute; visibility:hidden;')



来源:https://stackoverflow.com/questions/34991619/googlemaps-appears-in-grey-after-refresh-page

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!