У меня есть ленивый загруженный маршрут с решателем:
const routes: Routes = [
{
path: '',
children: [
{
path: '',
component: MyComponent,
resolve: {
data: MyService
}
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class MyRoutingModule {}
Мой модуль
@NgModule({
imports: [
CommonModule,
MyRoutingModule,
...
],
declarations: [
MyComponent,
...
],
providers: [MyService]
})
export class MyModule {}
Мой сервис resolver
:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
return forkJoin(
this.getData1(),
this.getData2(),
this.getData3()
);
}
Я подписываюсь на свойство data
в моем компоненте приложения:
export class AppComponent implements OnInit {
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.data.subscribe(x => {
data = x; //x = undefined
});
}
}
Проблемы x
всегда undefined
Есть идеи, почему я не могу получить доступ к своим разрешенным данным и как это исправить?
UPDATE:
Я хочу знать, когда данные разрешены, поэтому я хочу скрыть счетчик.
Согласно публикации @ OneLunch-Man, мой компонент приложения не будет иметь доступа к этим данным, так что как бы вы справились с этим, все, что мне нужно знать о моем компоненте приложения, - это когда данные разрешаются, поэтому я могу сделать некоторое состояние пользовательского интерфейса. изменения, такие как прятание прядильщика и т. д.