2016-12-28 120 views
0

我是angularjs的新手,我试图编写一个触发器来触发localStorage的变化并调用EuroPass服务之一。我发现触发器只会在第一次打开我的页面时触发,即使我在输入新数据(使用谷歌浏览器检查)时localStorage中的json发生了变化。这里是我的控制器:触发器看localStorage的变化不会在angularjs中触发

CVapp.controller('CVcontroller', ['$scope', '$http', '$window', function($scope, $http, $window){ 

$scope.CVjson = {}; 

$scope.$watch(function(){ 
    return $window.localStorage.getItem('temporary.europass.ewa.skillspassport.v3'); 
}, function(newjson, oldjson){ 
    $scope.CVjson = $window.localStorage.getItem('temporary.europass.ewa.skillspassport.v3'); 
    console.log('change'); 
}); 

}]) 

我使用的console.log当变化发生和控制台提供了“改变”只在打开网页时发出警报。我希望对我做错的任何见解有所了解。非常感谢你。

回答

0

如果本地存储密钥由你改变,则尝试使用一些回调,它将调用外部服务。

+0

我还没有打电话给任何外部服务,到目前为止一切都是本地的。目前我正试图在每次本地存储更改时触发触发器。 – Shema

+0

我没有看到通过某些触发器/观察者进行本地存储更改跟踪的任何必要。这样的触发器会被多次调用。本地存储多久更换一次? – NechiK

+0

很多时候。不过,我想知道为什么它不能正常工作。 – Shema