2017-10-09 5 views

Répondre

1

Il y a plusieurs façons de le faire. Je vais citer deux façons:

permet de dire, la valeur de propriété prop dépend de certaines sources externes (http appels) puis dans votre modèle, vous pouvez effectuer les opérations suivantes:

<ng-template *ngIf="prop else loading"> 
     {{prop}} 
    </ng-template> 
    <ng-template #loading> 
    <div class="ajax-loader"> 
     <img src="/assets/ajax-loading-img.gif" > 
    </div> 
    </ng-template> 

Une autre façon pourrait être:

export class YourComponent implements OnInit { 
    isLoading = false; 

    ngOnInit(){ 
     this.isLoading = true; 
     this.http.get(this.apiendpoint) 
      .do(()=> { // normal case scenario 
       this.isLoading = false; 
      },()=> { // error case scenario 
       this.isLoading = false; 
      }) 
      .subscribe((data) => { 
       // do your operation here. 

      }); 
    } 
    } 

Dans le modèle:.

<ng-template *ngIf="isLoading"> 
    <div class="ajax-loader"> 
     <img src="/assets/ajax-loading-img.gif" > 
    </div> 
    </ng-template> 
+0

Je suggère 'this.http.get (...) faire (_ => this.isLoading = false) .subscribe() '. De cette façon, le chargement est basculé dans une étape distincte dans un gestionnaire 'do', au lieu de deux lignes identiques dans les gestionnaires' subscribe'. – hlfrmn

+0

Yah! tu as raison. C'est un bon moyen de le faire. – asmmahmud

+0

Comment utiliser un paquet npm angular2-busy? –