我有一个仪表板页面,其中包含表格中的实体列表。在单击实体时,我使用routerLink指令导航到实体的详细信息页面/视图。在该页面上,他可以添加新记录并查看现有记录。
这些实体/对象的形状是不同的,因此实体“详细”页面将需要不同的逻辑表格和显示实体的记录等。然而,这些大致分为4类,所以我有4个不同的组件来处理4种不同的“形状”。
现在我正在寻找一种干净,通用的方法来拦截和转移单个路由定义到这4个组件,我不能在仪表板实体列表中对其进行硬编码,因为它将在运行中加载:
可能的指示(根据我的理解)
也许构建一个shell组件,订阅route params,然后维护一个实体应该指向4个组件中哪个组件的映射。即实体4,6,7 goto entity.detail.componentA。然后,调用router.navigate到所需的组件。
使用单个组件获取实体记录,检查形状并相应显示。这将使一个庞大的组件具有大量的ng-if模板,以显示正确的视图。
- 使用单个shell组件并在shell模板中包含4组件选择器ieDisable / enable基于视图的组件使用ng-if和flags。
如果有人遇到类似问题,请分享您的观点。
目前的路线如下:
export const appRoutes: Routes = [
{ path: '', redirectTo: 'dashboard', pathMatch: 'full' },
{ path: 'dashboard', component: DashboardComponent },
{ path: 'entity-details/:id', component: EntityDetailsComponent }
];