1
getReport 서비스가 데이터를 반환하기 전에 구성 요소의 ngOninit에 충돌이 발생합니다. 서비스가 해결 될 때까지 기다리지 않습니다.라우트가 해결되기 전에 각 2 개의 구성 요소가로드됩니다.
라우팅 :
@Injectable()
class ReportResolver implements Resolve<any> {
constructor(private reportsService: ReportsService) {
}
resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): any {
this.reportsService.GetReport(route.params["id"]).subscribe((data: any) => {
return data;
});
}}
const appRoutes: Routes = [
{
path: "reports/:id",
component: TabularReportsFachadeComponent,
resolve: { report: ReportResolver }
},
{
path: "",
component: DashboardComponent
},];
서비스 :
GetReport(id: any): Observable<any> {
return this._http.get("api/reports/?" + id).map(res => res.json());
}
구성 요소 다음 getReport
구독을 삭제했으며 효과가있었습니다. 감사! – janIreal23
듣기 좋게 생각합니다. 피드백에 감사드립니다. –