angularjs和localStorage更改事件

我将一些数据存储在localStorage中

我想在我的angularjs应用程序中看到的是,当localStorage中的数据更改时,该应用程序会重新渲染该应用程序,我该怎么做?

回答:

有一个角度的localStorage模块:

https://github.com/grevory/angular-local-

storage

var DemoCtrl = function($scope, localStorageService) {

localStorageService.clearAll();

$scope.$watch('localStorageDemo', function(value){

localStorageService.add('localStorageDemo',value);

$scope.localStorageDemoValue = localStorageService.get('localStorageDemo');

});

$scope.storageType = 'Local storage';

if (!localStorageService.isSupported()) {

$scope.storageType = 'Cookie';

}

};

经过进一步考虑,您可能需要将模块更改为在setItem上广播,以便在localStorage发生更改时得到通知。也许在第50行附近分叉:

localStorage.setItem(prefix+key, value);

$rootScope.$broadcast('LocalStorageModule.notification.setItem',{key: prefix+key, newvalue: value}); // you could broadcast the old value if you want

或在库的最新版本中,更改了大小写

$rootScope.$broadcast('LocalStorageModule.notification.setitem',{key: prefix+key, newvalue: value});

然后,在您的控制器中,您可以:

$scope.$on('LocalStorageModule.notification.setItem', function(event, parameters) {

parameters.key; // contains the key that changed

parameters.newvalue; // contains the new value

});

这是第二个选项的演示:演示:http :

//beta.plnkr.co/lpAm6SZdm2oRBm4LoIi1

我分叉了该项目,并在您要使用该项目的事件中包括了以下通知:https : //github.com/sbosell/angular-

local-

storage/blob/master/localStorageModule.js

我相信原始图书馆接受了我的PR。我喜欢这个库的原因是,如果浏览器不支持本地存储,它具有cookie备份。

以上是 angularjs和localStorage更改事件 的全部内容, 来源链接: utcz.com/qa/409539.html

回到顶部