From a8f40d0a3f0b538672f22ef1033472e2ad1e04df Mon Sep 17 00:00:00 2001 From: Mark Furland Date: Thu, 29 Dec 2016 17:52:40 -0500 Subject: [PATCH] Don't delete all map defaults on one map destroy Instead of resetting all the currently instantiated maps defaults, only reset the map that is being destroyed --- src/directives/leaflet.js | 2 +- src/services/leafletMapDefaults.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/directives/leaflet.js b/src/directives/leaflet.js index 11e93acf..7949a4fe 100644 --- a/src/directives/leaflet.js +++ b/src/directives/leaflet.js @@ -135,7 +135,7 @@ angular.module('ui-leaflet', ['nemLogging']).directive('leaflet', }); scope.$on('$destroy', function () { - leafletMapDefaults.reset(); + leafletMapDefaults.reset(attrs.id); map.remove(); leafletData.unresolveMap(attrs.id); }); diff --git a/src/services/leafletMapDefaults.js b/src/services/leafletMapDefaults.js index 285f94b0..e46012ec 100644 --- a/src/services/leafletMapDefaults.js +++ b/src/services/leafletMapDefaults.js @@ -47,8 +47,9 @@ angular.module('ui-leaflet').factory('leafletMapDefaults', function ($q, leaflet // Get the _defaults dictionary, and override the properties defined by the user return { - reset: function () { - defaults = {}; + reset: function (scopeId) { + var mapId = obtainEffectiveMapId(defaults, scopeId); + delete defaults[mapId]; }, getDefaults: function (scopeId) { var mapId = obtainEffectiveMapId(defaults, scopeId);