如何在AngularJS中显示错误消息?

时间:2015-09-26 10:56:15

标签: angularjs validation

我有用AngularJS编写的服务和控制器,我在其中向Node.js应用程序发送一个post请求,并使用发送状态和代码发送错误消息,如Username already existsWrong email and password但我我没有得到如何在前端HTML中显示这些错误。就像提交后可能会被按下一样。你会怎么做?

$http.post('/register', registerUser).then(function(response){
                console.log(response.data);
}

如何在HTML中显示响应.data。我读到有关角度的$ error但我不认为它会在我的情况下工作,因为我的是自定义错误。

谢谢

3 个答案:

答案 0 :(得分:12)

您的HTML应该是这样的:

<div ng-if="errorMessage">{{ errorMessage }}</div>

然后您可以修改$scope.errorMessage以显示它:

$http.post('/register', registerUser).then(function(response){
    switch(response.data) {
        case 'loginExists':
            $scope.errorMessage = 'Username already exists';
            break;
        case 'loginError':
            $scope.errorMessage = 'Wrong email and password';
            break;
        default:
            $scope.errorMessage = false;
    }
}

答案 1 :(得分:4)

您可以使用Bootstrap警报:

<div ng-show="hasError">
<alert ng-repeat="error in errors track by $index" type="danger"  close="closeAlert($index)">{{error}}</alert>
</div>
控制器中的

$scope.errors = [];
$scope.hasError = false;
$scope.closeAlert = function (index) {
    $scope.errors.splice(index, 1);
}

$http.post('/register', registerUser).then(function(response){
switch(response.data) {
    case 'error1':
        $scope.hasError = true;
        $scope.errors.push('error1');
        break;
    case 'error2':
        $scope.hasError = true;
        $scope.errors.push('error2');
        break;
    default:
        $scope.hasError = true;
        $scope.errors.push("I don't know whats going on");
    }
 }
};

你可以在任何地方使用它。

答案 2 :(得分:0)

我认为这样更好:

Message error