我正面临着传单图书馆的问题。当我尝试加载地图时,图像被加载了不止一次。我使用的是带有角的、呼叫声的和browserify的传单。我怀疑这可能是因为加载库和异步执行的顺序,但我不确定。没有js错误消息,宣传单只是中断。
这是我的grunt文件:
var $ = require('jquery');
window.jQuery = $;
//require boostrap.js for bootstrap components
var angular = require('angular');
require('ui.bootstrap');
require('showErrors');
require('leaflet');
require('leaflet-directive');
angular.module('common', [
require('angular-resource')
]);
var requires = [
'ngRoute',
'leaflet-directive',
'common',
'ui.bootstrap',
'ui.bootstrap.showErrors'
];
require('./common');
angular.module('app', requires).config(function($routeProvider) {
customRouteProvider.when('/common', {templateUrl: 'js/common/1.html'});
customRouteProvider.otherwise({redirectTo: '/'});
});Html代码:
<div ng-controller="mapController">
<div id="map" style="height: 440px; border: 1px solid #AAA;"></div>
</div>mapController:
module.exports = function ($scope, leafletData) {
var map = L.map( 'map', {
center: [20.0, 5.0],
minZoom: 2,
zoom: 2
});
L.tileLayer( 'http://{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright" title="OpenStreetMap" target="_blank">OpenStreetMap</a> contributors | Tiles Courtesy of <a href="http://www.mapquest.com/" title="MapQuest" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png" width="16" height="16">',
subdomains: ['otile1','otile2','otile3','otile4']
}).addTo( map );
}但是当我执行代码时,传单中断了,我的地图看起来像这样:

我也尝试了angular-leaflet-directive与标准,但它仍然打破。以前有没有人遇到过这个问题?有什么建议吗?
发布于 2019-06-19 23:43:38
在您的文件Html代码中
用change style div测试: height: 80vh;
<div ng-controller="mapController">
<div id="map" style="height: 80vh; border: 1px solid #AAA;"></div>
</div>并检查组件生命周期的初始化情况:
Angular 6是ngOnInit。
Ionic是ionViewDidEnter。
其思想是在组件初始化之后完成小册子加载。
发布于 2021-07-23 19:25:31
这个问题经常是由于在map已经初始化时调整任何父容器的大小而发生的。
这是我在Angular 12 link中的解决方案
发布于 2022-03-04 15:46:14
如果您在Vue3上遇到此问题,则需要导入CSS:
<script>
import "leaflet/dist/leaflet.css";https://stackoverflow.com/questions/30370155
复制相似问题