使用 Backbone.js 初始化 Leaflet 地图时,我无法再访问这个确切的地图。
例如:
mapView.map.locate({setView: true, maxZoom: 10});
将导致
TypeError: 'undefined' 不是函数(评估'mapView.map.locate({setView: true, maxZoom: 10})')
地图通过仪表板视图中的单独视图进行初始化,例如:
this.mapView = new MapView();
$(this.$el).find('.content').append(this.mapView.el).find('.map').addClass('full').css({
'height': $(window).height() / 2
});
此视图如下所示:
var MapView = Backbone.View.extend({
template: _.template(""),
render: function ()
{
this.$el.html(this.template());
this.map = L.map(this.el).setView([48.00786, 13.17989], 8);
this.map = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: 'OpenStreetMap © Mitwirkende der <a href="http://osm.org/copyright">OpenStreetMap</a>'
}).addTo(this.map);
return this;
}
});
我可以通过控制台访问地图对象。记录它。结果如下所示:
_animated: true _bgBuffer: HTMLDivElement _clearBgBufferTimer: 4 _container: HTMLDivElement _initHooksCalled: true _leaflet_events: Object _leaflet_id: 20 _limitedUpdate: function s() {var a=arguments;return n?(o=!0,void 0):(n=! 0,setTimeout(function(){n=!1,o&&(s.apply(i,a),o=!1)},e),t.apply(i,a),void 0);} _map:对象_tileContainer:HTMLDivElement _tileImg:HTMLImageElement _tiles:对象_tilesToLoad:0 _url:“http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png”选项:对象 原型:对象
但是为什么我之后无法访问此地图?
谢谢!