From 3d57c03872caa1316cc969889596916373f0f960 Mon Sep 17 00:00:00 2001 From: Andre Wyrwa Date: Wed, 24 Jan 2018 20:04:58 +1100 Subject: [PATCH] only trigger digest cycle if not already in progress; bump to 0.3.14 --- bower.json | 2 +- ngStorage.js | 4 +++- ngStorage.min.js | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index ea9f2cc..adeac10 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "theiconic-ngstorage", - "version": "0.3.13", + "version": "0.3.14", "main": "./ngStorage.js", "keywords": [ "angular", diff --git a/ngStorage.js b/ngStorage.js index 7c8b3f6..68c5fa9 100644 --- a/ngStorage.js +++ b/ngStorage.js @@ -175,7 +175,9 @@ _last$storage = copy($storage); - $rootScope.$apply(); + if (!$rootScope.$$phase) { + $rootScope.$apply(); + } } }); diff --git a/ngStorage.min.js b/ngStorage.min.js index 37ebd86..974b7a5 100644 --- a/ngStorage.min.js +++ b/ngStorage.min.js @@ -1 +1 @@ -/*! ngstorage 0.3.7 | Copyright (c) 2017 Gias Kay Lee | MIT License */!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["angular"],b):"object"==typeof exports?module.exports=b(require("angular")):b(a.angular)}(this,function(a){"use strict";function b(b){return["$rootScope","$window","$log","$timeout",function(d,k,l,m){function n(a){var b;try{b=k[a]}catch(c){b=!1}if(b&&"localStorage"===a){var d="__"+Math.round(1e7*Math.random());try{b.setItem(d,d),b.removeItem(d)}catch(c){b=!1}}return b}var o,p,q=n(b)||(l.warn("This browser does not support Web Storage!"),{setItem:e,getItem:e,removeItem:e,key:e}),r={$default:function(a){for(var b in a)j(r[b])||(r[b]=a[b]);return r.$sync(),r},$reset:function(a){for(var b in r)"$"===b[0]||delete r[b]&&q.removeItem(c+b);return r.$default(a)},$sync:function(){for(var a,b,d=q.length;d--;)b=q.key(d),a=f(b),b&&c+a===b&&(r[a]=g(q.getItem(b)))},$apply:function(){var b;if(p=null,!a.equals(r,o)){b=i(o),a.forEach(r,function(a,d){j(a)&&"$"!==d[0]&&q.setItem(c+d,h(a)),delete b[d]});for(var d in b)q.removeItem(c+d);o=i(r)}}};return r.$sync(),o=i(r),d.$watch(function(){p||(p=m(r.$apply,100,!1))}),k.addEventListener("storage",function(a){var b,e=a.key,h=a.newValue;e&&(b=f(e),e===c+b&&(h?r[b]=g(h):delete r[b],o=i(r),d.$apply()))}),k.addEventListener("beforeunload",function(a){r.$apply()},!1),r}]}var c="ngStorage-",d=c.length,e=function(){},f=function(a){return a.slice(d)},g=a.fromJson,h=a.toJson,i=a.copy,j=a.isDefined;return a.module("ngStorage",[]).factory("$localStorage",b("localStorage")).factory("$sessionStorage",b("sessionStorage"))}); \ No newline at end of file +/*! ngstorage 0.3.7 | Copyright (c) 2018 Gias Kay Lee | MIT License */!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["angular"],b):"object"==typeof exports?module.exports=b(require("angular")):b(a.angular)}(this,function(a){"use strict";function b(b){return["$rootScope","$window","$log","$timeout",function(d,k,l,m){function n(a){var b;try{b=k[a]}catch(c){b=!1}if(b&&"localStorage"===a){var d="__"+Math.round(1e7*Math.random());try{b.setItem(d,d),b.removeItem(d)}catch(c){b=!1}}return b}var o,p,q=n(b)||(l.warn("This browser does not support Web Storage!"),{setItem:e,getItem:e,removeItem:e,key:e}),r={$default:function(a){for(var b in a)j(r[b])||(r[b]=a[b]);return r.$sync(),r},$reset:function(a){for(var b in r)"$"===b[0]||delete r[b]&&q.removeItem(c+b);return r.$default(a)},$sync:function(){for(var a,b,d=q.length;d--;)b=q.key(d),a=f(b),b&&c+a===b&&(r[a]=g(q.getItem(b)))},$apply:function(){var b;if(p=null,!a.equals(r,o)){b=i(o),a.forEach(r,function(a,d){j(a)&&"$"!==d[0]&&q.setItem(c+d,h(a)),delete b[d]});for(var d in b)q.removeItem(c+d);o=i(r)}}};return r.$sync(),o=i(r),d.$watch(function(){p||(p=m(r.$apply,100,!1))}),k.addEventListener("storage",function(a){var b,e=a.key,h=a.newValue;e&&(b=f(e),e===c+b&&(h?r[b]=g(h):delete r[b],o=i(r),d.$$phase||d.$apply()))}),k.addEventListener("beforeunload",function(a){r.$apply()},!1),r}]}var c="ngStorage-",d=c.length,e=function(){},f=function(a){return a.slice(d)},g=a.fromJson,h=a.toJson,i=a.copy,j=a.isDefined;return a.module("ngStorage",[]).factory("$localStorage",b("localStorage")).factory("$sessionStorage",b("sessionStorage"))}); \ No newline at end of file diff --git a/package.json b/package.json index 28cd04f..4386c91 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "grunt-cli": "^0.1.11", "grunt-contrib-uglify": "^0.x", "grunt-karma": "^0.x", - "karma": "^0.12.31", + "karma": "^0.12.37", "karma-chrome-launcher": "^0.2.0", "karma-firefox-launcher": "^0.1.3", "karma-mocha": "^0.2.0",