我是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来自服务设置器但是当我刷新时,所有服务设置值都会丢失。那么,任何人都可以帮我这个吗?如何以角度进行刷新请求?
答案 0 :(得分:0)
AngularJS / Angular中的单页应用程序不适用于浏览器刷新。
浏览器刷新后需要保留的值需要存储在存储localstorage
或sessionstorage
中。使用
设置
localstorage.setItem("yourkey",value);
sessionstorage.setItem("yourkey",value);
要回复
localstorage.getItem("yourkey");
sessionstorage.getItem("yourkey");
如果您打算通过浏览器刷新来重新填充页面上显示的数据,那么您必须使对象监听事件(可能导致数据更改的事件)