Obtenez de l'en-tête de réponse à l'époque() la fonction d'un ngResource de l'objet $promesse de propriété après de ressources résolu?
Je suis prêt à récupérer l'entête de la réponse d'une demande de ressource, parce que j'ai mis de la pagination de l'information et de quelque chose d'autre, plutôt que le corps de la réponse, de faire le RESTE de l'api claire.
Si nous pouvons l'obtenir à partir de la réussite ou de l'erreur de rappel comme ci-dessous:
Object.get({type:'foo'}, function(value, responseHeaders){
var headers = responseHeaders();
});
Où l '"Objet" est ma ressource de service d'usine.
De plus, quand je suis en train de faire le changement d'itinéraire après les ressources nécessaires résolu, j'ai essayé ceci:
.when('/list', {
templateUrl: 'partials/list.html',
controller: 'ListCtrl',
//wait for the required promises to be resolved before controller is instantialized
resolve: {
objects: ['Object', '$route', function(Object, $route){
return Object.query($route.current.params).$promise;
}]
}
})
et dans le contrôleur, juste injecter des "objets" au lieu de l'Objet du service, parce que c'est résolu et rempli avec des données réelles.
Mais j'ai eu le problème lorsque j'essaie de récupérer les en-têtes des informations à partir de la "objets" dans le contrôleur.
J'ai essayé objects.$promise.then(function(data, responseHeaders){})
, mais responseHeader était pas défini.
Comment puis-je changer le $service de ressources du comportement de sorte qu'il jette la responseHeader getter dans le $promesse alors() la fonction callback?
Mon service "Objet" pour référence:
myServices.factory('Object', ['$resource',
function($resource){
return $resource('object/:id', {id: '@id'}, {
update: {method: 'PUT'},
});
}
]);
responseHeader
était pas défini, mais le paramètre dans la définition de fonction est responseHeaders
(au pluriel), donc responseHeader
(singulier) devrait en effet être indéfini?OriginalL'auteur Uice Stone | 2014-04-06
Vous devez vous connecter pour publier un commentaire.
J'ai eu exactement le même problème. J'ai utilisé un intercepteur dans la définition de la ressource pour injecter les en-têtes http de la ressource.
Puis, dans la
then
rappel, les en-têtes http sont accessibles par le biais de$httpHeaders
:OriginalL'auteur Benoît Bouré
Je pense que j'ai eu un problème similaire: Après la Publication d'une ressource nouvelle et j'ai besoin d'obtenir l'Emplacement de l'en-tête de la réponse, puisque l'Id de la nouvelle ressource a été mis sur le serveur et est ensuite retourné par cet en-tête.
J'ai résolu ce problème en introduisant ma propre promesse comme ceci:
OriginalL'auteur jbandi
Nous ne pouvons pas utiliser
.then
pour le retour de l'en-tête parce que la promesse n'autorise pas pour plusieurs valeurs de retour. (par exemple,(res, err)
)C'était une demande de fonctionnalité, et a été fermé https://github.com/angular/angular.js/issues/11056
OriginalL'auteur Ryan Ruppert