進出口創造與PhoneGap的,Backbone.js的,Require.js和PageSlider(https://github.com/ccoenraets/PageSlider)移動應用首次觀看後正確顯示。谷歌地圖不Backbone.js的
我想用一個標誌來顯示一個簡單的谷歌地圖。該模板的樣子:
<div class='main-content' id='map-container'>
<a href="geo:51.903679,-8.468274">
<div id="map-canvas"></div>
</a>
</div>
這裏是視圖:
define(function (require) {
"use strict";
var $ = require('jquery'),
_ = require('underscore'),
Backbone = require('backbone'),
tpl = require('text!tpl/Map.html'),
side_nav = require('text!tpl/SideNav.html'),
template = _.template(tpl),
map, myLatlng, mapOptions, marker;
return Backbone.View.extend({
initialize: function() {
this.render();
},
initMap: function() {
myLatlng = new google.maps.LatLng(51.903679, -8.468274);
mapOptions = {
center: myLatlng,
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(this.$el.find('#map-canvas')[0],
mapOptions);
marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'Christians Brothers College Cork'
});
},
render: function() {
this.$el.html(template({side_nav:side_nav}));
this.initMap();
},
});
});
Here是對應用程序的鏈接。當你點擊「位置」時,地圖呈現完美。但是,當你瀏覽其他地方,然後回到位置,只有在地圖的一小部分,可以在左上角看到。
我想這樣做,這是建議here:
google.maps.event.trigger(map, 'resize').
,但無濟於事。有任何想法嗎?
添加到DOM,應用谷歌地圖,然後將其刪除多麼輝煌而全面的答案,謝謝! – user1716672
如果您在地區使用MarionetteJS,則在onShow方法內創建地圖而不是在onRender中解決問題,因爲視圖已經在DOM中。我真的建議木偶,這樣可以節省很多的麻煩。 – alancasagrande