2

次のような基準に基づいて行われた最近のアクティビティをユーザーが表示できるようにするルート構成があります。

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

リゾルバーは、サービス クラスに格納されている arraylist からオブジェクトを返します。すぐに配列から HTTP 要求に変更するつもりなので、VerifyComponent のサービス クラスに直接アクセスしていません。

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

なぜデータがここに来ないのか理解できません。誰でも私を案内できますか?前もって感謝します。

4

1 に答える 1