Comment rendre les erreurs de client? AngularJS/WebApi ModelState

Je suis en train de construire un AngularJS un SPA avec WebApi pour le backend. Je suis à l'aide d'attributs pour la validation du modèle sur le serveur, si la validation échoue, c'est ce que j'retour de la ModelState.

     {"Message":"The request is invalid.","ModelState":{"model.LastName":["Last Name must be at least 2 characters long."]}}

Comment puis-je rendre au client avec AngularJS?

      //Save User Info
$scope.processDriverForm = function(isValid) {
if (isValid) {
//set button disabled, icon, text
$scope.locked = true;
$scope.icon = 'fa fa-spinner fa-spin';
$scope.buttonText = 'Saving...';
$scope.submitted = true;
$scope.formData.birthDate = $scope.formData.birthMonth + '/' + $scope.formData.birthDay + '/' + $scope.formData.birthYear;
$http({
method: 'POST',
url: 'api/Account/Register',
data: $.param($scope.formData),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' } //set the headers so angular passing info as form data (not request payload)
})
.success(function (data) {
console.log(data);
toastr.success('User ' + $scope.formData.username + ' created!');
$scope.userForm.$setPristine();
$scope.formData = {};
//reset the button
$scope.locked = false;
$scope.icon = '';
$scope.buttonText = 'Save';
//reset validation submitted
$scope.submitted = false;
})
.error(function (data, response) {
console.log(data);
toastr.error('Ooops! There was an error creating the user. Try again and if the problem persists, contact Support.');
//reset the button
$scope.locked = false;
$scope.icon = '';
$scope.buttonText = 'Save';
$scope.submitted = false;
var resp = {};
var errors = [];
for (var key in resp.ModelState) {
for (var i = 0; i < resp.ModelState[key].length; i++) {
errors.push(resp.ModelState[key][i]);
}
}
$scope.errors = errors;
});
}
else {
toastr.warning('Invalid User Form, correct errors and try again.');
}
};
qu'avez-vous essayé ? Vous pouvez gérer cela par des dizaines de méthodes.. Cette question est que la façon de large. Vous choisissez d'abord le comportement de votre application pour dispaying (alerte ? popup ? collant de notification ?) ...
Désolé, je n'ai pas l'intention de la manière de rendu. Je n'étais tout simplement pas comment les erreurs de la ModelState tableau qui est passé avec les 400 BadRequest erreur

OriginalL'auteur Brad Martin | 2014-04-15