Angular: «Resolve» генерирует бесконечный цикл - PullRequest
0 голосов
/ 30 апреля 2020

Мы находимся внутри App.module.ts специально в разделе:

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

Теперь давайте go разрешим CallHttpResolve и сделаем простое Http Call:

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;});
  }

Как никогда при запуске этот код генерирует мне бесконечный l oop http запросов? Как я могу остановить это l oop?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Вы можете попытаться добавить перенаправление к «домашнему» пути:

RouterModule.forRoot([
    {path: 'xxx/:xxx', component: XxxComponent},
    {path: '', redirectTo: 'home', pathMatch: 'full' },
    {path: 'home', component: HomepageComponent, resolve: {
        answerCallHttp: CallHttpResolve
    }},
    {path: 'error', component: ErrorComponent}
])
0 голосов
/ 30 апреля 2020

Не могли бы вы добавить pathMatch: 'full' к маршруту Home и проверить, решает ли он вашу проблему?

, т.е.:

{path: '', component: HomepageComponent, pathMatch: 'full', resolve: {
  answerCallHttp: CallHttpResolve
}},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...