web-dev-qa-db-fra.com

Ressources AngularJS en panne GET

Est-ce que quelqu'un sait comment vous pouvez vérifier qu'une ressource n'a pas été extraite dans AngularJS?

Par exemple:

//this is valid syntax
$scope.Word = Word.get({ id : $routeParams.id },function() {
    //this is valid, but won't be fired if the HTTP response is 404 or any other http-error code
});

//this is something along the lines of what I want to have 
//(NOTE THAT THIS IS INVALID AND DOESN'T EXIST)
$scope.Word = Word.get({ id : $routeParams.id },{
    success : function() {
      //good
    },
    failure : function() {
      //404 or bad
    }
});

Des idées?

29
matsko

Une fonction de rappel supplémentaire après votre première fonction de rappel devrait se déclencher en cas d'erreur. Tiré du docs et du groupe post :

$scope.Word = Word.get({ id : $routeParams.id }, function() {
    //good code
}, function(response) {
    //404 or bad
    if(response.status === 404) {
    }
});
  • Actions HTTP GET "class": Resource.action ([paramètres], [succès], [erreur])
  • actions "classe" non-GET: Resource.action ([paramètres], postData, [succès], [erreur])
  • actions d'instance non-GET: instance. $ action ([paramètres], [succès], [erreur])
49
Gloopy

Juste pour répondre à la question de @Adio aussi.

Le second rappel sera appelé lorsque tout code de réponse http est considéré comme une erreur par AngularJS (seuls les codes de réponse dans [200, 300] sont considérés comme des codes de réussite). Vous pouvez donc avoir une fonction générale de gestion des erreurs sans vous soucier de l'erreur spécifique . L'instruction if peut être utilisée pour effectuer différentes actions en fonction du code d'erreur, mais ce n'est pas obligatoire.

5
Rodrigo Chiong

Ceci est juste pour informer.

À partir de 1.6.x angulaire, le succès et l’échec sont déconseillés. Alors s'il vous plaît maintenant suivre les alors et attraper au nom du succès et de l'échec.

Ainsi, le code ci-dessus ressemble à 1.6.x angulaire est comme ci-dessous:

$scope.Word = Word.get({ id : $routeParams.id }).then(=> () {
    //this is valid, but won't be fired if the HTTP response is 404 or any  other http-error code
}).catch(=> () {
    // error related code goes here
});
0
Anavar Bharmal