Skip to content
This repository was archived by the owner on Sep 20, 2019. It is now read-only.

Commit 7281ff5

Browse files
committed
Readded doRefresh watchers for baselayers/overlays
1 parent 24c23cb commit 7281ff5

File tree

1 file changed

+39
-15
lines changed

1 file changed

+39
-15
lines changed

src/directives/layers.js

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,41 @@ angular.module('ui-leaflet').directive('layers', function (leafletLogger, $q, le
8383
isLayersControlVisible = updateLayersControl(map, mapId, isLayersControlVisible, newBaseLayers, layers.overlays, leafletLayers);
8484
return true;
8585
}
86+
_updateBaseLayer(newBaseLayers);
87+
});
88+
89+
leafletScope.$watch(function () {
90+
var doRefresh = false;
91+
angular.forEach(layers.baselayers, function (l) {
92+
doRefresh = l.doRefresh || doRefresh;
93+
});
94+
return doRefresh;
95+
}, function (doRefresh) {
96+
if (!doRefresh) return;
97+
_updateOverlayLayers(layers.baselayers);
98+
});
99+
100+
// Watch for the overlay layers
101+
leafletScope.$watchCollection('layers.overlays', function (newOverlayLayers, oldOverlayLayers) {
102+
if (angular.equals(newOverlayLayers, oldOverlayLayers)) {
103+
isLayersControlVisible = updateLayersControl(map, mapId, isLayersControlVisible, layers.baselayers, newOverlayLayers, leafletLayers);
104+
return true;
105+
}
106+
_updateOverlayLayers(newOverlayLayers);
107+
});
108+
109+
leafletScope.$watch(function () {
110+
var doRefresh = false;
111+
angular.forEach(layers.overlays, function (l) {
112+
doRefresh = l.doRefresh || doRefresh;
113+
});
114+
return doRefresh;
115+
}, function (doRefresh) {
116+
if (!doRefresh) return;
117+
_updateOverlayLayers(layers.overlays);
118+
});
119+
120+
function _updateBaseLayer(newBaseLayers) {
86121
// Delete layers from the array
87122
for (var name in leafletLayers.baselayers) {
88123
if (!isDefined(newBaseLayers[name]) || newBaseLayers[name].doRefresh) {
@@ -133,30 +168,19 @@ angular.module('ui-leaflet').directive('layers', function (leafletLogger, $q, le
133168

134169
// Only show the layers switch selector control if we have more than one baselayer + overlay
135170
isLayersControlVisible = updateLayersControl(map, mapId, isLayersControlVisible, newBaseLayers, layers.overlays, leafletLayers);
136-
});
137-
138-
// Watch for the overlay layers
139-
leafletScope.$watchCollection('layers.overlays', function (newOverlayLayers, oldOverlayLayers) {
140-
if (angular.equals(newOverlayLayers, oldOverlayLayers)) {
141-
isLayersControlVisible = updateLayersControl(map, mapId, isLayersControlVisible, layers.baselayers, newOverlayLayers, leafletLayers);
142-
return true;
143-
}
171+
}
144172

173+
function _updateOverlayLayers(newOverlayLayers) {
145174
// Delete layers from the array
146175
for (var name in leafletLayers.overlays) {
147176
if (!isDefined(newOverlayLayers[name]) || newOverlayLayers[name].doRefresh) {
148177
// Remove from the map if it's on it
149178
if (map.hasLayer(leafletLayers.overlays[name])) {
150179
// Safe remove when ArcGIS layers is loading.
151-
var options = isDefined(newOverlayLayers[name])?
152-
newOverlayLayers[name].layerOptions:null;
180+
var options = isDefined(newOverlayLayers[name]) ? newOverlayLayers[name].layerOptions : null;
153181
safeRemoveLayer(map, leafletLayers.overlays[name], options);
154182
}
155183
// TODO: Depending on the layer type we will have to delete what's included on it
156-
var oldLayer = oldOverlayLayers[name];
157-
if (isDefined(oldLayer) && oldLayer.hasOwnProperty("cleanupAction")) {
158-
oldLayer.cleanupAction(leafletLayers.overlays[name]);
159-
}
160184
delete leafletLayers.overlays[name];
161185

162186
if (newOverlayLayers[name] && newOverlayLayers[name].doRefresh) {
@@ -219,7 +243,7 @@ angular.module('ui-leaflet').directive('layers', function (leafletLogger, $q, le
219243

220244
// Only add the layers switch selector control if we have more than one baselayer + overlay
221245
isLayersControlVisible = updateLayersControl(map, mapId, isLayersControlVisible, layers.baselayers, newOverlayLayers, leafletLayers);
222-
});
246+
}
223247
});
224248
}
225249
};

0 commit comments

Comments
 (0)