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

Commit fedea81

Browse files
author
Lyndon Armitage
committed
Addition of on delete actions for overlays
Simply add a a "cleanupAction" field to your configured layer that is a function that takes in the layer and you can perform actions on it before it is deleted. This is very useful for layers like heatmaps etc that seemed to leak memory upon being refreshed.
1 parent d07de17 commit fedea81

6 files changed

+23
-11
lines changed

dist/ui-leaflet.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* ui-leaflet 2.0.0 2016-10-05
2+
* ui-leaflet 2.0.0 2016-10-21
33
* ui-leaflet - An AngularJS directive to easily interact with Leaflet maps
44
* git: https://github.com/angular-ui/ui-leaflet
55
*/
@@ -3908,6 +3908,10 @@ angular.module('ui-leaflet').directive('layers', ["leafletLogger", "$q", "leafle
39083908
safeRemoveLayer(map, leafletLayers.overlays[name], options);
39093909
}
39103910
// TODO: Depending on the layer type we will have to delete what's included on it
3911+
var oldLayer = oldOverlayLayers[name];
3912+
if (isDefined(oldLayer) && oldLayer.hasOwnProperty("cleanupAction")) {
3913+
oldLayer.cleanupAction(leafletLayers.overlays[name]);
3914+
}
39113915
delete leafletLayers.overlays[name];
39123916

39133917
if (newOverlayLayers[name] && newOverlayLayers[name].doRefresh) {
@@ -5050,7 +5054,7 @@ angular.module('ui-leaflet').factory('leafletMarkerEvents', ["$rootScope", "$q",
50505054

50515055
'use strict';
50525056

5053-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
5057+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
50545058

50555059
angular.module('ui-leaflet').factory('leafletPathEvents', ["$rootScope", "$q", "leafletLogger", "leafletHelpers", "leafletLabelEvents", "leafletEventsHelpers", function ($rootScope, $q, leafletLogger, leafletHelpers, leafletLabelEvents, leafletEventsHelpers) {
50565060
var isDefined = leafletHelpers.isDefined,

dist/ui-leaflet.min.js

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ui-leaflet.min.no-header.js

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ui-leaflet_dev_mapped.js

+6-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ui-leaflet_dev_mapped.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/directives/layers.js

+4
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@ angular.module('ui-leaflet').directive('layers', function (leafletLogger, $q, le
153153
safeRemoveLayer(map, leafletLayers.overlays[name], options);
154154
}
155155
// 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+
}
156160
delete leafletLayers.overlays[name];
157161

158162
if (newOverlayLayers[name] && newOverlayLayers[name].doRefresh) {

0 commit comments

Comments
 (0)