在url加载视图后删除localstorage

时间:2016-09-06 16:20:11

标签: javascript angularjs local-storage

我传递存储在localstorage中的url参数以获取特定项目的详细信息。我想在加载视图后删除localstorage变量,但我正在经历的是,在加载视图之前删除localstorage变量,阻止数据正确加载

$scope.pushpayment_id = localStorage.getItem("pushpayment_id")
$scope.pushshop_id = localStorage.getItem("pushshop_id")
$scope.pushmessage = localStorage.getItem("push_message")

var startapp=function() {
  if($scope.pushmessage== "payment"){
    $location.path('/tab/new_payment_push/'+ $scope.pushpayment_id + '/' + $scope.pushshop_id);
  }
}
localStorage.removeItem("pushpayment_id")
localStorage.removeItem("pushshop_id")
localStorage.removeItem("push_message")

3 个答案:

答案 0 :(得分:1)

Angular解决方案可以是这样的:

当位置变化成功后,您可以进行操作,也可以控制您的路径以及您要去的地方。

编辑将此信息放在.run()上,告诉我您是否需要更多相关信息。

 $rootScope.$on('$locationChangeSuccess', function(ev, newUrl, oldUrl, newState, oldState){
       if(newUrl === '/myLocation/To/Delete'){
           localStorage.clear();
       }       
  });

请参阅here有关$location

事件的更多信息

答案 1 :(得分:0)

当窗口加载jQuery时,你可以清除localStorage:

$(window).load(function () {
    localStorage.clear();
});

如果您想使用纯JavaScript来检测网页是否已完成加载,您可以尝试以下选项:https://stackoverflow.com/a/7088499/5709703

答案 2 :(得分:0)

您可以使用加载事件回调来删除localStorage 在javascript中,使用

$(window).load(function() {
    //What you need to do.
})

确保在尝试之前安装了Jquery,否则你会得到错误 您可以在W3School上的Javascript中了解有关窗口对象的更多信息 希望它有所帮助!

  • 尼克