2014-09-26 5 views
4

У меня есть данные из разных контроллеров, которые хранятся в сеансеStorga с использованием https://github.com/fredricrylander/angular-webstorage. Данные сохраняются в порядке и доступны в текущем сеансе. Проблема я столкнулся приветы сделать контроллер, который будет следить за изменениями в webstorage.session Я сделал это так:Угловая сессия часов js Хранение

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. В чем может быть проблема?

ответ

3

webStorage.session только устанавливает значение $scope.mySessionStorage один раз при инициализации вашего контроллера. Так что код над часами срабатывает только один раз.

Попробуйте посмотреть значение webStorage.session вместо значения в контроллере:

$scope.$watch(function() { 
    return webStorage.session; 
}, function (newVal, oldVal) { 
    console.log("The web storage has changed"); 
}, true); 
+1

Это не работает, как это, но если я заменю webStorage.session с sessionStorage он работает ... не знаю, почему ... – exilonX