En poussant ou Unshifting dans le transformRequest tableau $http (non globale)

Voir la accepté de répondre à ici pour une très bonne explication sur le transFormRequest fonction/tableau.

Dans la réponse de la dernier exemple:

var transform = function(data){
    return $.param(data);
}

$http.post("/foo/bar", requestData, {
    headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
    transformRequest: transform
}).success(function(responseData) {
    //do stuff with response
});

Cependant, le problème avec ceci est que transformRequest: transform remplace le tableau de fonctions qui Angulaire a pré-construit.

De l'angle de docs:

À l'échelle mondiale compléter ou remplacer la valeur par défaut transforme, de modifier le $httpProvider.les valeurs par défaut.transformRequest et $httpProvider.les valeurs par défaut.transformResponse propriétés. Ces propriétés sont, par défaut, un tableau de transformer des fonctions, ce qui vous permet de pousser ou d'annuler le déplacement d'une nouvelle fonction de transformation dans la chaîne de transformation. Vous pouvez également décider d'annuler tout défaut de transformations par l'assignation de vos fonctions de transformation de ces propriétés directement sans l'ensemble de son enveloppe. Ces valeurs par défaut sont de nouveau disponibles sur le $http usine au moment de l'exécution, ce qui peut être utile si vous avez au moment de l'exécution des services que vous souhaitez être impliqué dans vos transformations.

De même, localement remplacer la requête/réponse transforme, augmenter la transformRequest et/ou transformResponse propriétés de la configuration de l'objet passé en $http.

Si je voulais appliquer ma fonction de transformation à l'échelle mondiale, je ne

$httpProvider.defaults.transformRequest.unshift(myFunction)

ou

$httpProvider.defaults.transformRequest.push(myFunction)

Ma question

Au lieu d'effacer l'ensemble de la matrice de transformer les fonctions de demande, comment vous pousser un autre fonction de transformation à un appel, non pas à l'échelle mondiale?

OriginalL'auteur NicolasMoise | 2014-02-14