AngularJS : Wie $http in einen filter

Ich würde gerne eine Anfrage in mein backend in einem filter und gibt das Ergebnis meiner Anfrage.
Das problem ist der service $http-return-ein Versprechen, und es ist das Problem.

Für das Thema verwendete ich eine $timeout und die Versprechen Winkel-in meinem fiddle :
meine Geige

In meinem filter verwende ich einen $timeout mit einem Versprechen, aber das Ziel ist, verwenden Sie eine Anfrage http :

myApp.filter('filterHello', function ($http,$timeout,$q) {
return function (company_id) {
    console.log("in the filter");
    var deferred = $q.defer();   
    $timeout(function() {
        deferred.resolve("ca marche");
    }, 2000);                  
    return deferred.promise;
};

});

Dann in meine anzeigen, ich benutze meinen filter, der ist wohl auf die Anzeige "ca marche" mit einer Verzögerung von 2 Sekunden, aber das funktioniert nicht :

<div ng-controller="MyCtrl">
   {{hello|filterHello}}
</div>

Können Sie sehen, dass der filter nichts zurück und es ist eine Endlosschleife, in der filter, da der null-Versprechen, denke ich.

Wenn Sie nicht verstehen, warum ich wollen, verwenden Sie eine http-Anfrage in einem filter die Antwort ist einfach.
Zum Beispiel habe ich ein Benutzer-Objekt mit den Feldern : email,name,company_id..
Und ich habe eine andere Firma Objekt mit den Feldern : name, createOn,...
Ich möchte die filter, wie dies für den Namen des Benutzers Firma :

{{user.company_id | ShowNameCompany}}

So, ich muss eine http-Anfrage in die filter für mein Unternehmen die controller in meinem backend.

Ich hoffe mir kann jemand helfen.

  • Poste den code, den Sie versucht, bitte
  • Verknüpfen Sie Ihre Geige
  • Filter Feuer eine MENGE! Es muss eine größere Bandbreite freundschaftlichen Methode von der Erreichung Ihrer Ziele.
  • Die fiddle-link nicht angezeigt, weil es eine [2]: vor. Und weiter SO, Sie können nicht einen link zu posten jsfiddle.net ohne auch das hinzufügen einiger code auf Ihre Frage. Bitte fügen Sie einige code, und stellen Sie sicher, dass der link korrekt ist. Danke.
  • Was ist das Endziel hier? Warum sind Sie mit $http-Filter in den ersten Platz?
  • Ja sorry ich fixe den link für die Geige. Mike, ich Stimme mit Ihnen überein, aber wenn ich den cache für meine Anfrage, ich werde tun, nur eine Anfrage und bekommt dann die Daten in den cache
  • Ich aktualisiere einfach meinen post, wo ich erklären, mein Ziel.
  • Das update macht es klingen wie Sie sollten, erstellen Sie eine Richtlinie, nicht um einen filter.

InformationsquelleAutor FlavienBert | 2013-11-08
Schreibe einen Kommentar