javascript - Angular js 观察 session 存储

标签 javascript node.js angularjs session-storage web-storage

我有一些来自不同 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/

相关文章:

javascript - 从纬度和经度生成谷歌地图

javascript - node.js 项目在本地机器上工作,在 Heroku 上部署时出现问题

javascript - Bash 脚本和 Javascript 的标准哈希算法?

angularjs - Angular Material Design - 根据屏幕尺寸更改弹性值

javascript - 如何在 Vue.js 中传递动态页面 :id to $http. 获取 url

javascript - 通过类外函数(或替代方法)操纵状态

javascript - Canvas 绘制带有线性渐变的填充圆 Angular 矩形

javascript - 对顺序/相关操作使用嵌套的 Q promise

angularjs - Protractor :在更新期间测试多个用户登录是否存在冲突

javascript - 使用 gulp-angular-gettext 从 JS 文件中提取字符串不起作用