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から取得 )