Angulaire 2 loader sur chaque requête http

Ce que je suis en train de faire est de:

Je veux utiliser le compteur à chaque fois qu'une requête http accurs. En d'autres termes je veux utilisateur pour voir un écran de chargement à chaque fois qu'une requête http qui se passe dans mon application.composante.

Mon spinner.composant et spinner-service de fichiers sont les mêmes avec la réponse dans cette question.

Et mon application.composant du composant est

@Component({
    selector: 'todoApi',
    template: `
        <div class="foo">
            <spinner-component></spinner-component>
            <h1>Internship Project</h1>
            <a [routerLink]="['Dashboard']">Dashboard</a>
            <a [routerLink]="['Tasks']">List</a>
            <router-outlet></router-outlet>
        <div>
    `,
    directives: [ROUTER_DIRECTIVES,SpinnerComponent],
    providers: [
        ROUTER_PROVIDERS,
    ]
})

@RouteConfig([
    {
        path: '/dashboard',
        name: 'Dashboard',
        component: DashboardComponent,
        useAsDefault: true
    },{
        path: '/tasks',
        name: 'Tasks',
        component: TaskComponent
    },{
        path: '/detail/:id',
        name: 'TaskDetail',
        component: TaskDetailComponent
    },
])

D'conclue , à chaque fois qu'une requête http survient dans l'une de ces voies, j'en veux pour preuve la touche de navigation pour l'utilisateur. Je sais que cela a été une mauvaise question , mais je suis nouveau sur angulaire 2 et je voudrais vraiment être reconnaissant si quelqu'un pouvait m'aider.

Merci beaucoup!
Edit!:


Solution avec Günther réponse:
J'ai enveloppé mes http et spinner-service dans un HttpClient composant et l'a utilisé au lieu d'un module http. Voici mon HttpClient composant:

import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import { SpinnerService} from './spinner-service';

@Injectable()
export class HttpClient {
  constructor(
      private http: Http,
      public spinner: SpinnerService
    ){

  }

  createAuthorizationHeader(headers:Headers) {
    headers.append('Authorization', 'Basic ' + btoa('username:password')); 
  }

  get(url) {
    this.spinner.start();
    let headers = new Headers();
    this.createAuthorizationHeader(headers);
    return this.http.get(url, { headers: headers }).do(data=> {this.spinner.stop()});
  }

  post(url, data) {
    this.spinner.start();
    let headers = new Headers();
    this.createAuthorizationHeader(headers);
    return this.http.post(url, data, { headers: headers }).do(data=> {this.spinner.stop()});
  }
}
Peut-être vous créer un service sur mesure pour effectuer des requêtes http étendre la HttpClass fournis par l'angulaire et de suivre la isBusy état à votre service personnalisé lors de chaque demande .

OriginalL'auteur ozata | 2016-07-01