2015-09-26 72 views
0

我有用AngularJS編寫的服務和控制器,其中我向Node.js應用程序發送了一個發佈請求,並使用發送狀態和代碼發送錯誤消息,如Username already existsWrong email and password,但我沒有得到如何顯示這些錯誤前端HTML。如提交後可能被按下。你會怎麼做呢?如何在AngularJS中顯示錯誤消息?

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

我將如何在HTML中顯示響應.data。我讀了關於角度的$錯誤,但我不認爲它會在我的情況下工作,因爲我的是一個自定義錯誤。

感謝

回答

10

你的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; 
    } 
} 
+0

看起來邏輯正確。讓我試試看。我會盡快給您回覆。 –

4

您可以使用警報,引導:

<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"); 
    } 
} 
}; 

你到處都可以使用它。