Функция разрешения не выполняется в Resolver Angular 5 - PullRequest
2 голосов
/ 14 марта 2020

Я в большом затруднении с этого утра по очень глупой причине. Это должно работать, но я не понимаю, что мешает этому. В любом случае, код ниже

My Resolver:

export class UserResolver implements Resolve<any> {
   constructor(private fakeApi: FakeApiService) { }
   resolve():Observable<any> {
     console.log('resolver method hit');
     return Observable.empty();
   }
}

Мой модуль:

 const routes: Routes = [
    {path:'',component:UserComponent,resolve:{users:UserResolver}}
 ]

 const leafManifest:IManifestCollection = [
    {path:'',component:UserComponent}
 ]

Не беспокойтесь об услуге или вызывающем компоненте, потому что они даже не приходят на картинке. Я просто звоню по этому маршруту, и метод решается. Однако метод разрешения не выполняется, он просто переходит к закрытию метода и обратно к вызывающему компоненту. Другими словами, если я помещаю отладчик в метод распознавателя, он срабатывает, но никогда не входит внутрь него. Похоже, он просто пропускает его.

Итак, как вы можете видеть, он не отображает в консоли никакого сообщения, такого как «метод разрешения проблем».

Да, я добавил UserResolver в провайдеры модуля.

1 Ответ

1 голос
/ 14 марта 2020

Надеюсь, вы не указали свой решатель в NgModule.

@NgModule({
  providers: [
    UserResolver 
  ]
})

Вот пример: https://alligator.io/angular/route-resolvers/

Обновленное решение:

Попробуйте это

@Injectable()
export class UserResolver implements Resolve<Observable<any>> {
  constructor(private fakeApi: FakeApiService) { }

  resolve() {
    console.log('resolver method hit');
     return Observable.empty();
  }
}
...