0
ngMessage用於在表單驗證失敗時顯示錯誤消息。但是現在需要這個div在http 500發生錯誤時顯示。當http錯誤發生時,我可以得到相應的錯誤信息,但是當時不知道如何顯示ngMessage div。Angular如何在登錄頁面上顯示http錯誤消息
HTML:
<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;
});
}
};
}]);
更新: 如果我只使用納克 - 如果,既可以顯示形式驗證消息和HTTP錯誤消息,但沒有ngMessage,形式驗證消息將不會是動態的
您需要做的是將您的身份驗證服務用作異步驗證程序。異步驗證已添加到AngularJS 1.3。 – georgeawg