我有一些来自不同 Controller 的数据,这些数据使用 https://github.com/fredricrylander/angular-webstorage 存储在 sessionStorga 中.数据存储正常,在当前 session 中可用。 我面临的问题是制作一个 Controller 来监视 webstorage.session 中的变化我这样做是这样的:
app.controller(
'updateDataController',
['$scope','$http','$sce','$location','$routeParams', '$rootScope', '$document', 'webStorage', '$interval', 'md5',
function($scope,$http,$sce,$location,$routeParams, $rootScope, $document, webStorage, $interval, md5) {
$scope.mySessionStorage = webStorage.session;
$scope.$watch('mySessionStorage', function (newVal, oldVal) {
console.log("The web storage has changed");
}, true);
}
]);
我只得到一次 console.log 输出。即使我更改了 webStorage.session 的内容,我也没有收到任何日志。可能是什么问题?
最佳答案
webStorage.session
仅在 Controller 初始化时将值设置为 $scope.mySessionStorage
一次。因此 watch 上方的代码只会触发一次。
尝试观察 webStorage.session
值而不是 Controller 中的值:
$scope.$watch(function () {
return webStorage.session;
}, function (newVal, oldVal) {
console.log("The web storage has changed");
}, true);
关于javascript - Angular js 观察 session 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26061383/