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

Commit 24c23cb

Browse files
committed
Avoid making copies of custom layers. Avoid deep watching of layers
1 parent 363b586 commit 24c23cb

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

src/directives/layercontrol.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ angular.module('ui-leaflet').directive('layercontrol', function ($filter, leafle
212212
});
213213
});
214214

215-
leafletScope.$watch('layers.overlays', function(newOverlayLayers) {
215+
leafletScope.$watchCollection('layers.overlays', function (newOverlayLayers) {
216216
var overlaysArray = [];
217217
var groupVisibleCount = {};
218218
leafletData.getLayers().then(function() {
@@ -259,7 +259,7 @@ angular.module('ui-leaflet').directive('layercontrol', function ($filter, leafle
259259
}
260260
scope.overlaysArray = overlaysArray;
261261
});
262-
}, true);
262+
});
263263
});
264264
}
265265
};

src/directives/layers.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ angular.module('ui-leaflet').directive('layers', function (leafletLogger, $q, le
7878
}
7979

8080
// Watch for the base layers
81-
leafletScope.$watch('layers.baselayers', function(newBaseLayers, oldBaseLayers) {
82-
if(angular.equals(newBaseLayers, oldBaseLayers)) {
81+
leafletScope.$watchCollection('layers.baselayers', function (newBaseLayers, oldBaseLayers) {
82+
if (angular.equals(newBaseLayers, oldBaseLayers)) {
8383
isLayersControlVisible = updateLayersControl(map, mapId, isLayersControlVisible, newBaseLayers, layers.overlays, leafletLayers);
8484
return true;
8585
}
@@ -133,11 +133,11 @@ angular.module('ui-leaflet').directive('layers', function (leafletLogger, $q, le
133133

134134
// Only show the layers switch selector control if we have more than one baselayer + overlay
135135
isLayersControlVisible = updateLayersControl(map, mapId, isLayersControlVisible, newBaseLayers, layers.overlays, leafletLayers);
136-
}, true);
136+
});
137137

138138
// Watch for the overlay layers
139-
leafletScope.$watch('layers.overlays', function(newOverlayLayers, oldOverlayLayers) {
140-
if(angular.equals(newOverlayLayers, oldOverlayLayers)) {
139+
leafletScope.$watchCollection('layers.overlays', function (newOverlayLayers, oldOverlayLayers) {
140+
if (angular.equals(newOverlayLayers, oldOverlayLayers)) {
141141
isLayersControlVisible = updateLayersControl(map, mapId, isLayersControlVisible, layers.baselayers, newOverlayLayers, leafletLayers);
142142
return true;
143143
}
@@ -219,7 +219,7 @@ angular.module('ui-leaflet').directive('layers', function (leafletLogger, $q, le
219219

220220
// Only add the layers switch selector control if we have more than one baselayer + overlay
221221
isLayersControlVisible = updateLayersControl(map, mapId, isLayersControlVisible, layers.baselayers, newOverlayLayers, leafletLayers);
222-
}, true);
222+
});
223223
});
224224
}
225225
};

src/services/leafletLayerHelpers.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ angular.module('ui-leaflet')
218218
custom: {
219219
createLayer: function (params) {
220220
if (params.layer instanceof L.Class) {
221-
return angular.copy(params.layer);
221+
return params.layer;
222222
}
223223
else {
224224
$log.error('[AngularJS - Leaflet] A custom layer must be a leaflet Class');

0 commit comments

Comments
 (0)