我無法通過Backbone.js渲染谷歌地圖(V3)。簡單的Backbone.js和谷歌地圖渲染
導航到地圖視圖(/#/ map)時無法加載;不過,當我在該地圖視圖網址中刷新刷新時,地圖以某種方式加載完全正常。
相關的代碼下面:
<body>
<a href="#">Home</a>
<div id="content"></div>
<script type="text/template" id="home_template">
<a href="#/map">Go !</a>
</script>
<script type="text/template" id="map_template">
<div id="map"></div>
</script>
</body>
var MapView = Backbone.View.extend({
el: '#content',
render: function() {
var template = _.template($('#map_template').html());
var init = function() {
var mapOptions = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', init);
this.$el.html(template);
}
});
var Router = Backbone.Router.extend({
routes: {
"" : "home",
"map" : "map"
}
});
var router = new Router;
var homeView = new HomeView();
router.on('route:home', function() {
homeView.render();
});
var mapView = new MapView();
router.on('route:map', function() {
mapView.render();
});
Backbone.history.start();
看來這 '東西' 是缺少家庭之間,當我切換視圖地圖,但我'我不確定那是什麼東西。我相信我已經梳理了相關的問題,但找不到缺點。
任何幫助將不勝感激。
謝謝!
(PS的MapView部分摘自:https://developers.google.com/maps/documentation/javascript/tutorial )
在導航到「mapView」時是否刪除了「#content」? – fbynite
你可以發佈你的HomeView嗎?你有沒有任何自定義的清理代碼可以調用它?$ el.remove或類似的東西? – Mingle