Angular2:如何根据外部值实现特定路径配置列表的可选择性

时间:2016-03-24 01:39:50

标签: javascript architecture angular angular2-routing

我试图在一个.ts文件中使用两个不同的Route Configs,它具有相同的路由级别和基于服务变量值的相同父路径。

该子句是,如果外部设置变量的值为true,则它将使用一个子路由列表,如果是另一个子路由,则它将使用第二个列表。路径路径和级别是相同的。

例如:

父路由/parent...(非终端路由)然后在子路由config if service.value is true中然后它将使用以下路由配置

@RouteConfig([
  {path: '/', component: ChildComponent, name: 'ChildCmp' },
  {path: '/test', component: SecComponent, name: 'SecCmp' },
  {path: '/tester', component: OptionalComponent, name: 'ThCmp' }
])

如果service.value is false,它将使用以下内容:

@RouteConfig([
  {path: '/', component: ChildComponent, name: 'ChildCmp' },
  {path: '/test', component: SecComponent, name: 'SecCmp' }
])

是否可以inject将配置列表路由到列表或提供基于service.value的if语句?关于如何实现路由配置的模块化或可选择性的任何想法?

1 个答案:

答案 0 :(得分:3)

您可以使用Router#config来动态配置路由。

所以它很简单如下

SELECT p.patient_id, p.visit_id, LIST(t.treatment_id, ',') as l
FROM PATIENT p INNER JOIN TREATMENT t
ON p.visit_id = t.visit_id
GROUP BY p.patient_id, p.visit_id

这是示例工作的plnkr。切换服务中的值以查看值的变化。