Nous sommes à l'intérieur du App.module.ts spécifiquement dans la section:

RouterModule.forRoot([
  {path: 'xxx/:xxx', component: XxxComponent},
  {path: '', component: HomepageComponent, resolve: {
      answerCallHttp: CallHttpResolve
    }},
  {path: 'error', component: ErrorComponent}
])

Allons maintenant résoudre CallHttpResolve et effectuer un simple appel Http:

resolve(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  ): Observable<any> | Promise<any> | any {
      return this.HttpClient.get(this.api + '/retailer', {
        headers: new HttpHeaders({
          'Auth': this.memory.getToken()
        }),
        params: new HttpParams().set('system_device', 'desktop').set('system_platform', this.getBrowserName())
      }).toPromise().then(value => {return value;});
  }

Comme jamais quand exécuter ce code me génère une boucle infinie de requêtes http? Comment puis-je arrêter cette boucle?

0
CavaForCoding 30 avril 2020 à 13:58

2 réponses

Meilleure réponse

Pouvez-vous s'il vous plaît ajouter pathMatch: 'full' à l'itinéraire du domicile et vérifier si cela résout votre problème?

C'est à dire:

{path: '', component: HomepageComponent, pathMatch: 'full', resolve: {
  answerCallHttp: CallHttpResolve
}},
0
Nayak 30 avril 2020 à 11:09

Vous pouvez essayer d'ajouter une redirection vers un chemin «d'accueil»:

RouterModule.forRoot([
    {path: 'xxx/:xxx', component: XxxComponent},
    {path: '', redirectTo: 'home', pathMatch: 'full' },
    {path: 'home', component: HomepageComponent, resolve: {
        answerCallHttp: CallHttpResolve
    }},
    {path: 'error', component: ErrorComponent}
])
0
R. Richards 30 avril 2020 à 11:30