我有用AngularJS编写的服务和控制器,我在其中向Node.js应用程序发送一个post请求,并使用发送状态和代码发送错误消息,如Username already exists
或Wrong email and password
但我我没有得到如何在前端HTML中显示这些错误。就像提交后可能会被按下一样。你会怎么做?
$http.post('/register', registerUser).then(function(response){
console.log(response.data);
}
如何在HTML中显示响应.data。我读到有关角度的$ error但我不认为它会在我的情况下工作,因为我的是自定义错误。
谢谢
答案 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)
我认为这样更好: