使用Backbone.js初始化Leaflet地图时,我无法再访问此精确地图。
E.g:
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;
}
});
我可以通过console.log来访问地图对象。结果如下:
_animated:true _bgBuffer:HTMLDivElement _clearBgBufferTimer:4 _container:HTMLDivElement _initHooksCalled:是的 _leaflet_events:对象 _leaflet_id:20 _limitedUpdate:function s(){var a = arguments; return n?(o =!0,void 0):( n =!0,setTimeout(function(){n =!1,o&amp;&amp;(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” 选项:对象 proto :对象
但为什么我之后无法访问此地图?
谢谢!
答案 0 :(得分:0)
问题解决了。我只是将整个地图事物移动到视图中,并没有将地图分成另一个视图。这可能不是最好的方法,但它确实很好。