我正面临传单库的问题。当我尝试加载地图时,图像会被加载一次以上。我正在使用带有角度,咕噜声和浏览器的传单。我怀疑它可能是因为加载库和异步执行的顺序,但我不确定。没有js错误消息,传单只是休息。
这是我的咕噜文件:
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,它仍然会破坏。以前有人遇到过这个问题吗?有什么建议吗?
答案 0 :(得分:0)
您的文件HTML代码
使用更改样式div测试:高度:80vh;
<div ng-controller="mapController">
<div id="map" style="height: 80vh; border: 1px solid #AAA;"></div>
</div>
并检查组件生命周期的初始化:
Angular 6是ngOnInit。
离子是ionViewDidEnter。
想法是在组件初始化之后完成小册子的加载。
答案 1 :(得分:0)
这个问题通常是由于在地图已经初始化的情况下调整任何父容器的大小。
这是我在 Angular 12 link
中的解决方案