我试图通过使用路线提供客户端ID来启动我的应用程序:
www.mysite.com/11298/ [任何页面]
11298将是客户端ID,用户可以导航到该路由下的任何页面。所以基本上clientId将始终在地址中,无论子路由是什么。这是路由器配置:
export const ROUTES: Routes = [
{
path: ':clientId',
canActivate: [InitializeGuard],
component: StartPageComponent,
children: [
{ path: '', redirectTo: 'page1', pathMatch: 'full' },
{ path: 'page1', component: Page1Component },
{ path: 'page2', component: Page2Component },
{ path: 'page3', component: Page3Component },
{ path: 'page4', component: Page4Component },
],
},
];
我目前在路线上使用InitializeGuard,如果我可以从该服务访问:clientId,那将是理想的选择。这可能吗?如果用户总是导航到www.mysite.com/14918,我只能读取StartPageComponent中的id,但我不知道用户将去哪条路线。
我怎么能读到:clientId用户去哪里而不将一些订阅代码重写到我的应用程序中的每个组件?如果我可以将:clientId传递给InitializeGuard for init并且它会非侵入性地处理它将会非常酷。
如果不可能,那么另一种方法是什么?我正在考虑为init提供共享服务,但我仍然需要在所有的PageXComponents中执行init,这听起来并不好。
如果这不是一个策略,那么在导航时将站点范围的clientId传递给每个路径会是一个好策略吗?