From 5aa8b20698cfacff7a16af90d863c50eb0bd2bca Mon Sep 17 00:00:00 2001 From: Julian Farhi Date: Sat, 28 Nov 2015 16:26:25 +0100 Subject: [PATCH] added guards on animation.leave --- modal.js | 12 ++++++++---- modal.min.js | 3 ++- modal.min.js.map | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/modal.js b/modal.js index ae1f50d..ce83035 100644 --- a/modal.js +++ b/modal.js @@ -73,10 +73,14 @@ function modalFactoryFactory($animate, $compile, $rootScope, $controller, $q, $h return $q.when(); } return $animate.leave(element).then(function () { - scope.$destroy(); - scope = null; - element.remove(); - element = null; + if(scope){ + scope.$destroy(); + scope = null; + } + if(element){ + element.remove(); + element = null; + } }); } diff --git a/modal.min.js b/modal.min.js index 96cf2a8..493c19a 100644 --- a/modal.min.js +++ b/modal.min.js @@ -4,4 +4,5 @@ * (c) 2013 Brian Ford http://briantford.com * License: MIT */ -"use strict";function modalFactoryFactory(e,t,n,r,o,a,l){return function(c){function u(e){return p.then(function(t){v||i(t,e)})}function i(o,a){if(v=angular.element(o),0===v.length)throw new Error("The template contains no elements; you need to wrap text nodes");if(d=n.$new(),h){a||(a={}),a.$scope=d;var l=r(h,a);$&&(d[$]=l)}else if(a)for(var c in a)d[c]=a[c];return t(v)(d),e.enter(v,s)}function m(){return v?e.leave(v).then(function(){d.$destroy(),d=null,v.remove(),v=null}):o.when()}function f(){return!!v}if(!(!c.template^!c.templateUrl))throw new Error("Expected modal to have exacly one of either `template` or `templateUrl`");var p,d,h=(c.template,c.controller||null),$=c.controllerAs,s=angular.element(c.container||document.body),v=null;return p=c.template?o.when(c.template):a.get(c.templateUrl,{cache:l}).then(function(e){return e.data}),{activate:u,deactivate:m,active:f}}}angular.module("btford.modal",[]).factory("btfModal",["$animate","$compile","$rootScope","$controller","$q","$http","$templateCache",modalFactoryFactory]); \ No newline at end of file +"use strict";function modalFactoryFactory(e,t,n,r,o,a,l){return function(c){function u(e){return p.then(function(t){v||i(t,e)})}function i(o,a){if(v=angular.element(o),0===v.length)throw new Error("The template contains no elements; you need to wrap text nodes");if(d=n.$new(),h){a||(a={}),a.$scope=d;var l=r(h,a);$&&(d[$]=l)}else if(a)for(var c in a)d[c]=a[c];return t(v)(d),e.enter(v,s)}function m(){return v?e.leave(v).then(function(){d&&(d.$destroy(),d=null),v&&(v.remove(),v=null)}):o.when()}function f(){return!!v}if(!(!c.template^!c.templateUrl))throw new Error("Expected modal to have exacly one of either `template` or `templateUrl`");var p,d,h=(c.template,c.controller||null),$=c.controllerAs,s=angular.element(c.container||document.body),v=null;return p=c.template?o.when(c.template):a.get(c.templateUrl,{cache:l}).then(function(e){return e.data}),{activate:u,deactivate:m,active:f}}}angular.module("btford.modal",[]).factory("btfModal",["$animate","$compile","$rootScope","$controller","$q","$http","$templateCache",modalFactoryFactory]); +//# sourceMappingURL=modal.min.js.map \ No newline at end of file diff --git a/modal.min.js.map b/modal.min.js.map index 1146340..6ae70b8 100644 --- a/modal.min.js.map +++ b/modal.min.js.map @@ -1 +1 @@ -{"version":3,"file":"modal.min.js.map","sources":["modal.min.js"],"names":["modalFactoryFactory","$animate","$compile","$rootScope","$controller","$q","$http","$templateCache","config","activate","locals","html","then","element","attach","angular","length","Error","scope","$new","controller","$scope","ctrl","controllerAs","prop","enter","container","deactivate","leave","$destroy","remove","when","active","template","templateUrl","document","body","get","cache","response","data","module","factory"],"mappings":";;;;;;AAOA,YAKA,SAASA,qBAAoBC,EAAUC,EAAUC,EAAYC,EAAaC,EAAIC,EAAOC,GACnF,MAAO,UAAuBC,GAwB5B,QAASC,GAAUC,GACjB,MAAOC,GAAKC,KAAK,SAAUD,GACpBE,GACHC,EAAOH,EAAMD,KAMnB,QAASI,GAAQH,EAAMD,GAErB,GADAG,EAAUE,QAAQF,QAAQF,GACH,IAAnBE,EAAQG,OACV,KAAM,IAAIC,OAAM,iEAGlB,IADAC,EAAQf,EAAWgB,OACfC,EAAY,CACTV,IACHA,MAEFA,EAAOW,OAASH,CAChB,IAAII,GAAOlB,EAAYgB,EAAYV,EAC/Ba,KACFL,EAAMK,GAAgBD,OAEnB,IAAIZ,EACT,IAAK,GAAIc,KAAQd,GACfQ,EAAMM,GAAQd,EAAOc,EAIzB,OADAtB,GAASW,GAASK,GACXjB,EAASwB,MAAMZ,EAASa,GAGjC,QAASC,KACP,MAAKd,GAGEZ,EAAS2B,MAAMf,GAASD,KAAK,WAClCM,EAAMW,WACNX,EAAQ,KACRL,EAAQiB,SACRjB,EAAU,OANHR,EAAG0B,OAUd,QAASC,KACP,QAASnB,EArEX,MAAOL,EAAOyB,UAAYzB,EAAO0B,aAC/B,KAAM,IAAIjB,OAAM,0EAGlB,IAKIN,GACAO,EALAE,GADgBZ,EAAOyB,SACPzB,EAAOY,YAAc,MACrCG,EAAgBf,EAAOe,aACvBG,EAAgBX,QAAQF,QAAQL,EAAOkB,WAAaS,SAASC,MAC7DvB,EAAgB,IAgEpB,OA3DEF,GADEH,EAAOyB,SACF5B,EAAG0B,KAAKvB,EAAOyB,UAEf3B,EAAM+B,IAAI7B,EAAO0B,aACtBI,MAAO/B,IAETK,KAAK,SAAU2B,GACb,MAAOA,GAASC,QAsDlB/B,SAAUA,EACVkB,WAAYA,EACZK,OAAQA,IAhFdjB,QAAQ0B,OAAO,mBACXC,QAAQ,YAAa,WAAY,WAAY,aAAc,cAAe,KAAM,QAAS,iBAAkB1C"} \ No newline at end of file +{"version":3,"file":"modal.min.js.map","sources":["modal.min.js"],"names":["modalFactoryFactory","$animate","$compile","$rootScope","$controller","$q","$http","$templateCache","config","activate","locals","html","then","element","attach","angular","length","Error","scope","$new","controller","$scope","ctrl","controllerAs","prop","enter","container","deactivate","leave","$destroy","remove","when","active","template","templateUrl","document","body","get","cache","response","data","module","factory"],"mappings":";;;;;;AAOA,YAKA,SAASA,qBAAoBC,EAAUC,EAAUC,EAAYC,EAAaC,EAAIC,EAAOC,GACnF,MAAO,UAAuBC,GAwB5B,QAASC,GAAUC,GACjB,MAAOC,GAAKC,KAAK,SAAUD,GACpBE,GACHC,EAAOH,EAAMD,KAMnB,QAASI,GAAQH,EAAMD,GAErB,GADAG,EAAUE,QAAQF,QAAQF,GACH,IAAnBE,EAAQG,OACV,KAAM,IAAIC,OAAM,iEAGlB,IADAC,EAAQf,EAAWgB,OACfC,EAAY,CACTV,IACHA,MAEFA,EAAOW,OAASH,CAChB,IAAII,GAAOlB,EAAYgB,EAAYV,EAC/Ba,KACFL,EAAMK,GAAgBD,OAEnB,IAAIZ,EACT,IAAK,GAAIc,KAAQd,GACfQ,EAAMM,GAAQd,EAAOc,EAIzB,OADAtB,GAASW,GAASK,GACXjB,EAASwB,MAAMZ,EAASa,GAGjC,QAASC,KACP,MAAKd,GAGEZ,EAAS2B,MAAMf,GAASD,KAAK,WAC/BM,IACDA,EAAMW,WACNX,EAAQ,MAEPL,IACCA,EAAQiB,SACRjB,EAAU,QATPR,EAAG0B,OAcd,QAASC,KACP,QAASnB,EAzEX,MAAOL,EAAOyB,UAAYzB,EAAO0B,aAC/B,KAAM,IAAIjB,OAAM,0EAGlB,IAKIN,GACAO,EALAE,GADgBZ,EAAOyB,SACPzB,EAAOY,YAAc,MACrCG,EAAgBf,EAAOe,aACvBG,EAAgBX,QAAQF,QAAQL,EAAOkB,WAAaS,SAASC,MAC7DvB,EAAgB,IAoEpB,OA/DEF,GADEH,EAAOyB,SACF5B,EAAG0B,KAAKvB,EAAOyB,UAEf3B,EAAM+B,IAAI7B,EAAO0B,aACtBI,MAAO/B,IAETK,KAAK,SAAU2B,GACb,MAAOA,GAASC,QA0DlB/B,SAAUA,EACVkB,WAAYA,EACZK,OAAQA,IApFdjB,QAAQ0B,OAAO,mBACXC,QAAQ,YAAa,WAAY,WAAY,aAAc,cAAe,KAAM,QAAS,iBAAkB1C"} \ No newline at end of file