Javascript 如何在登录页面上显示http错误消息
在我的登录页面上,ngMessage用于在表单验证失败时显示错误消息。但现在需要在发生http 500错误时显示此div。当http错误发生时,我可以得到相应的错误消息,但当时不知道如何显示ngMessage div html: 更新:Javascript 如何在登录页面上显示http错误消息,javascript,angularjs,Javascript,Angularjs,在我的登录页面上,ngMessage用于在表单验证失败时显示错误消息。但现在需要在发生http 500错误时显示此div。当http错误发生时,我可以得到相应的错误消息,但当时不知道如何显示ngMessage div html: 更新: 如果我只使用ng if,则可以显示表单验证消息和http错误消息,但如果没有ngMessage,表单验证消息将不会是动态的您可能希望为所有XHR处理非200 http,而不仅仅是用于身份验证。 您可以通过使用http响应拦截器来实现这一点,该拦截器可以计算每个X
如果我只使用ng if,则可以显示表单验证消息和http错误消息,但如果没有ngMessage,表单验证消息将不会是动态的您可能希望为所有XHR处理非200 http,而不仅仅是用于身份验证。 您可以通过使用http响应拦截器来实现这一点,该拦截器可以计算每个XHR的http代码 您可能需要在登录成功或登录错误以外的其他功能中使用消息。您可以为这些消息创建控制器,如登录成功、失败、用户修改成功、失败。。。您可以通过侦听消息控制器中的事件来执行此操作 然后,您可以从HTTP响应拦截器触发事件,通知消息控制器根据HTTP代码显示消息
最后,如果您想以不同的方式处理用于身份验证的HTTP错误代码,您可以使用Factorze$HTTP和他自己的HTTP响应拦截器,将您想要的消息发送到消息控制器 您需要做的是将身份验证服务用作异步验证器。AngularJS 1.3中添加了异步验证。
<div class="error_msg" ng-if="form_login.$submitted" ng-messages="form_login.$error" flex="initial">
<div class="alertmsg" ng-message="required" flex">{{errormsg | i18next}}</div>
</div>
loginModule.controller("loginController", ['$http', '$window', '$rootScope', '$scope', '$location', 'authenticationService', '$i18next', function($http, $window, $rootScope, $scope, $location, authenticationService, $i18next){
$scope.newclass = false;
$scope.errormsg = 'login.alertmsg';
$scope.login = function(){
if($scope.form_login.$invalid){
return false;
}else{
$scope.newclass = true;
$scope.dataloading = true;
authenticationService.login($scope.username, $scope.password,
function(response){
if(response.data.status_code == 200){
$window.location.href = 'view/home.html';
}else if(response.data.status_code == 500){
$scope.errormsg = 'error_code' + '.' +response.data.payload.error_code;
console.log($scope.errormsg);
$scope.dataloading = false;
$scope.newclass = false;
}
},
function(response){
$scope.dataloading = false;
$scope.newclass = false;
});
}
};
}]);