首页 > 解决方案 > 在angular-Js中刷新页面请求

问题描述

我是新手angularjs。在这里我有一个问题,当我登录应用程序然后我在某个需要服务器响应的页面上。所以,

在我的控制器中,我做

if (localStorage.getItem('authToken') === null || localStorage.getItem('authToken') === undefined) {
        $state.go('default.login');
      } else {
     /// all other part of controller


$scope.loadReports = function () {
          $scope.loadingReports = true;
          if ($scope.documentType === "jobDescription") {
            $scope.showcheckbox = false;
            $scope.showSendButton = false;
          }
          var jdCurrentFileName = jdService.getjdUniqueId();
          uploadService.loadReports(uploadService.currentFileName, $scope.documentType, jdCurrentFileName)
            .then(function (response) {
},
            function (error) {
              $scope.loadingReports = false;
              $scope.errorMessage = error.status + " : " + error.statusText;
              if (error.status === 401) {
                loginService.authenticationError();
              }
            });

现在,这里发生的事情是,当我刷新页面时,我使用 setter 在服务中设置的所有数据都会丢失。因此,在服务中调用此服务时

loadReports: function (fileName, docType, jobId) {
                    var url = 'rez' + '/reports/' + docType + '/' + fileName + '/' + jobId;
                    var config = {};
                    config.headers = {
                        "X-AUTH-TOKEN": loginService.getAuthToken()
                    };
                    return $http.get(url, config)
                        .then(function (response) {
                            return response.data;
                        },
                        function (error) {
                            $log.error(error);
                            return $q.reject(error);
                        });
                },

如果您看到,则 jobId 来自服务设置器但是当我刷新时,所有服务设置值都会丢失。所以,任何人都可以帮我解决这个问题吗?如何在 Angular 中进行刷新请求?

标签: javascriptjqueryhtmlcssangularjs

解决方案


AngularJS/Angular 中的单页应用程序不是为适应浏览器刷新而设计的。浏览器刷新后需要保留的值需要存储在 storagelocalstoragesessionstorage. 利用

设置

localstorage.setItem("yourkey",value);  
sessionstorage.setItem("yourkey",value);  

检索

localstorage.getItem("yourkey");
sessionstorage.getItem("yourkey");

如果您打算通过浏览器刷新来刷新页面上显示的数据,那么您必须让对象监听一个事件(可能导致您的数据更改的事件)


推荐阅读