Angular 6: не удается получить данные из распознавателя маршрутов - PullRequest
0 голосов
/ 08 октября 2018

У меня есть конфигурация маршрута, которая позволяет пользователю просматривать последние действия, которые были выполнены на основе таких критериев, как:

{ path: 'workspace', component: WorkspaceComponent, children: [
{ path: 'upload', component: UploadComponent },
{ path: 'verify', component: VerifyComponent, resolve:{dataObject: RecentActivityResolver}}]}

Средство распознавания возвращает объект из массива, хранящегося в классе обслуживания.,У меня нет прямого доступа к классу обслуживания в моем VerifyComponent, так как я собираюсь в ближайшее время перейти с массивов на HTTP-запросы.

@Injectable()
export class RecentActivityResolver implements Resolve<RecentActivityModel>{
constructor(private recentActivity: RecentActivityService){}
resolve(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<RecentActivityModel> |
Promise<RecentActivityModel> | RecentActivityModel {
    console.log(activatedRoute.queryParams['id']); // gives me the correct result here
    return this.recentActivity.recentActivities[+activatedRoute.queryParams['id']];
    }
}

В моем дочернем компоненте я получаю данные из данных, наблюдаемых следующим образом:

ngOnInit(){
    this.activatedRoute.data.subscribe((data: Data) => {
        console.log(data['dataObject']); // undefined
        this.displayActivity = data['dataObject'];
    });
    this.activatedRoute.queryParams.subscribe((data: Data) =>{
        console.log(data['id']); // correct data here
    });
}

Я не могу понять, почему данные не приходят сюда.Кто-нибудь может направить меня?Заранее спасибо.

1 Ответ

0 голосов
/ 09 октября 2018

Как ни странно, решение / обходной путь состоял в том, чтобы переместить решатель к родителю.Но я действительно хочу знать, почему это так.

{ path: 'workspace', component: WorkspaceComponent, resolve:{dataObject: RecentActivityResolver}, children: [
{ path: 'upload', component: UploadComponent },
{ path: 'verify', component: VerifyComponent }
]}
...