我在使用 Backbone.js 渲染 Google 地图 (V3) 时遇到问题。
当我导航到地图视图 (/#/map) 时,它无法加载;但是,当我在该地图视图 url 中点击刷新时,地图以某种方式加载得非常好。
相关代码如下:
<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 )