【发布时间】:2016-09-28 09:43:32
【问题描述】:
我有一个 Angular 2.0(稳定版)应用程序,其中一个实体是 project。对于每个projects,我将其详细信息分布在不同的部分/路线中:
project/:id/overviewproject/:id/documentsproject/:id/logs- 等
project 的 API 在一次调用中返回大部分数据,因此我需要调用一次,并使其可用于不同的子路由。
我的路线如下所示:
export const routing: ModuleWithProviders = RouterModule.forChild([
{ path: 'projects', component: ProjectsComponent },
{ path: 'project/new', component: NewProjectComponent },
{
path: 'project/:id',
component: ProjectDetailComponent,
resolve: {
project: ProjectDetailResolve
},
children: [
{ path: '', redirectTo: 'overview', pathMatch: 'full' },
{ path: 'overview', component: ProjectOverviewComponent },
{ path: 'documents', component: DocumentsComponent },
{ path: 'logs', component: LogsComponent },
]
}
]);
ProjectDetailComponent当前成功获取项目数据,使用解析器(没有问题):
ngOnInit() {
this.route.data.forEach((data: { project: any }) => {
this.project = data.project;
});
}
但我需要将同一个项目传递给子路由,因为为每个路由触发另一个 API 调用没有意义。
我曾尝试在子组件中使用相同的 ngOnInit 代码,我认为也许 Angular 路由器也会传递路由数据,但没有成功。
有什么想法吗?
谢谢
【问题讨论】: