Angenommen, ich muss einen GroupId-Parameter zu jeder Anfrage des Benutzers hinzufügen, aber ich möchte nicht jeden Service-Aufruf ändern. Ist es möglich, diese GroupId automatisch an alle Anfragen anzuhängen, egal ob es sich um eine POST- oder GET-Abfragezeichenfolge handelt?
Ich habe mich in die Interceptor request
Funktion, kann aber nicht herausfinden, wie die Änderung vorzunehmen
** ** Bearbeiten
Aktuelle Arbeitsprobe ist eine Combo von Morgan Delaney und haimlit der Vorschläge (ich denke, es ist sowieso eine Combom). Die Grundidee ist, dass, wenn die Anfrage ein POST ist, ändern Sie config.data
. Ändern Sie für GET params
. Scheint so weit zu arbeiten.
Noch nicht klar, wie das Provider-System in Angular funktioniert, also bin ich mir nicht sicher, ob es völlig passend ist, die data.params-Eigenschaften hier zu ändern.
.config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.push(['$rootScope', '$q', 'httpBuffer', function ($rootScope, $q, httpBuffer) {
return {
request: function (config) {
if (config.data === undefined) {
//Do nothing if data is not originally supplied from the calling method
}
else {
config.data.GroupId = 7;
}
if (config.method === 'GET') {
if (config.params === undefined) {
config.params = {};
}
config.params.GroupId = 7;
console.log(config.params);
}
return config;
}
};
} ]);
} ]);
Sie könnten eine Verknüpfung Dienst erstellen und es etwas nennen wie 'shortcut.get (url, Daten)' die Ihre Config alle anhängen würde Daten dann wieder die ' $ http Versprechen. http://stackoverflow.com/questions/17497006/use-http-inside-custom-provider-in-app-config-angular-js –
Hier ist ein Link mit nützlichen Beispielen. Wenn du es immer noch nicht zur Arbeit bekommst, poste einen Plunker mit dem, was du ausprobiert hast. http://www.webdeveasy.com/interceptors-in-angularjs-and-useful-examples/ – haimlit
@Morgan Delaney Danke. Ich habe meine Frage so aktualisiert, wie ich sie gerade habe. Hat die Art und Weise, wie ich es tat, irgendwelche negativen Konsequenzen im Vergleich zu der Art, wie Sie es vorgeschlagen haben? – Cabbagesocks