我有一个AngularJS应用程序。
我想在会话超时时处理错误。当它发生时,我将用户发送到登录页面。 除非用户单击打开对话框的按钮,否则它始终对我有用。
我创建了ErrorService以处理这种情况:
app.service('ErrorService', ['$modal', 'AlertService',
function ($modal, AlertService) {
this.handleError = function(error) {
//session timeout
if ((error.data !== "" || error.data !== null) &&
(error.status === 403)) {
window.location.href = "/webapps/";
} else {
if (error.data !== "" || error.data !== null)
AlertService.alert("status: " + error.data);//this will show the actual error thrown from the server if exist, if not exist it will show the http error text
else
AlertService.alert("status: " + error.statusText);
}
};
}]);
在我的应用程序中,当我点击按钮时,我有下一个代码:
this.sendMessageToAssignedUnits = function (size) {
var modalInstance = $modal.open({
templateUrl: 'Screen.html',
controller: 'ModalInstanceCtrl',
size: size
});
modalInstance.result.then(function (response) {
var simpleTextMessage = "Yo yo";
$http.post(response.url, simpleTextMessage)
.then(function (response) {
}, function (error) {
ErrorService.handleError(error);
}
);
}, function () {
console.log('Modal dismissed at: ' + new Date());
});
};
在这种情况下,我无法转到ErrorService。 我转到登录页面,但背景看起来像以前......