Sagen wir, ich habe mehrere $ Ressourcen und einige $ http um meine eckige Anwendung:
%Vor%mit Controller
%Vor%und einige Anfragen werden von $ http direkt wie Authentifizierung
gemacht %Vor%Wo und wie kann ich angular angeben, um JSONs zu base64 zu deflatieren und zu decodieren / decodieren, bevor die eigentliche Anfrage gemacht wird / Antwort erhalten wird?
I quess Ich werde externe Bibliotheken für deflate und encode / decode in Fabrik verpacken. Und dann wird diese Fabrik irgendwo injiziert? Wie $ httpBackend?
Sie sollten sich die -Anforderungs- / Antwort-Transformer für den Dienst $http
ansehen: Ссылка
Request / Response-Transformatoren sind einfach Funktionen, die aufgerufen werden können, bevor Inhalt an den Aufrufer gesendet / übergeben wird. Sie können transformierende Funktionen global (für alle Anfragen / Antworten) sowie pro Anfrage angeben:
Um diese Umwandlung lokal zu überschreiben, geben Sie Transformationsfunktionen an als transformRequest und / oder transformResponse Eigenschaften der Config Objekt. Um die Standardtransformationen global zu überschreiben, überschreiben Sie die $ httpProvider.defaults.transformRequest und $ httpProvider.defaults.transformResponse Eigenschaften des $ httpProvider.
Um globale Anfrage / Antwort-Transformatoren zu definieren, würde man den Code entlang dieser Zeilen schreiben (es ist mehr wie Pseudo-Code, wird nicht in allen Browsern funktionieren, siehe Anmerkungen zu Base64 unten):
%Vor%Natürlich könnte Ihr transformierender Code ausgefeilter sein und von Anforderungs- / Antwortheadern abhängen, aber die allgemeine Idee ist hier. Die jsFiddle mit dem Code (überprüfen Sie die Konsole, um zu sehen, dass eine Anfrage umgewandelt wird, müssen Sie Mozilla oder einen WebKit-Browser verwenden): Ссылка
Für die tatsächliche Konvertierung von / nach Base64 überprüfen Sie diese Frage: Wie können Sie eine Zeichenfolge in JavaScript in Base64 codieren?
So mache ich das im Filter. item.htmlBody enthält base64-kodierten Text mit HTML-Tag
%Vor%Nun, ich weiß, dass das nicht genau die Frage beantwortet, aber mit ein paar kleinen Optimierungen können Sie bekommen, was Sie wollen (zukünftige Person mit demselben Problem anvisieren)