2016-04-25 4 views
1

Ich muss auslösen ähnlich wie JQuery Ereignisse ajaxStart und ajaxStop Ich fand eine halbe Lösung hier zu handhaben -> How to set default HTTP header in Angular2? Also, im Moment habe ich einen ajaxStart umgehen kann Veranstaltung.Wie ajaxStart und ajaxStop Ereignisse in Angular2 Weise

Irgendwelche Lösungen, wie mit ajaxStop Ereignis umzugehen?

post(url: string, body: string, options?: RequestOptionsArgs): Observable<Response> { 
    //onAjaxStart 
    $("#loader").show(); 
    return super.post(url, body, options); //Any method here to handle event? 
} 

Ich versuchte .catch() zu verwenden, aber es feuert nur onError

ich bei Ajax Brände mein belebtes loader rufen müssen, und es verstecken, wenn es jedes Mal, wenn ich Anfrage verwenden Ajax stoppt.

So versuche ich Standard-Ajax-Methoden zu überschreiben. . Aber ich nicht richtig beobachtbaren Methode finden kann (

+0

Dies ist in keinem Zusammenhang mit Ihrer Frage, aber anstatt jQuery zu verwenden, warum hast du keine if-aussage über die elemente und zeigst/verstecke sie basierend auf einer variablen innerhalb deiner komponente? ich denke, das ist generell die angular-weise. – Dehli

Antwort

1

Sie könnten die „endlich“ Betreiber von beobachtbaren nutzen

Hier ist ein Beispiel für die Verwendung:

post(url: string, body: string, options?: RequestOptionsArgs): Observable<Response> { 
    //onAjaxStart 
    $("#loader").show(); 
    return super.post(url, body, options).finally(() => { 
     //onAjaxStop 
     $("#loader").hide(); 
    }); 
} 
+0

Ja, es ist cool, aber ich muss ein oservable Objekt zurückgeben Weil ich diese übergeordnete Methode als einfaches post/g nennen möchte et/etc Anfrage Ja, es ist cool, aber ich muss ein oservable Objekt zurückgeben. Weil ich möchte diese Methode overrided so einfach Post anrufen/get/etc Anfrage this.http.post ("someult", string) .map ((res: Response) => res.json()) .subscribe() ..... etc – ArtemSky

+0

Das hindert nicht daran, das Observable zu betrachten ;-) Ich meine das von der finally-Methode zurückgegebene. Beim Abonnieren erhalten Sie das Ergebnis der Anfrage ... –