Node.js 在Angular 4路由器中使用服务

Node.js 在Angular 4路由器中使用服务,node.js,angular,typescript,angular4-router,Node.js,Angular,Typescript,Angular4 Router,这是我的路线 export const routes: Routes = [ {path: '', redirectTo: '/login', pathMatch: 'full'}, {path: 'login', component: LoginComponent, canActivate: [dbs.ConfigGuard]}, {path: '**', component: PageNotFoundComponent } ]; export const routi

这是我的路线

export const routes: Routes = [
    {path: '', redirectTo: '/login', pathMatch: 'full'},
    {path: 'login', component: LoginComponent, canActivate: [dbs.ConfigGuard]},
    {path: '**', component: PageNotFoundComponent }
];

export const routing: ModuleWithProviders = RouterModule.forRoot(routes);
我想动态生成路径名

比如
{path:xyzService.getKey('login'),component:LoginComponent}


所以,我的问题是,我如何在这里注入我的
xyzService
来实现这一点。

这对我来说似乎是不可能的,因为您不能在angular中的模块中注入服务。在模块中,您只提供服务,然后被注入组件并在这里使用

此外,为什么要动态创建路由路径

您的用例是什么?

巧合的是,我刚刚在Angular项目的回购协议上读到了与此相关的Github问题:

我认为Angular Router目前不支持动态路由,但这个问题(截至本帖,尚未得到正式回复)应该可以解决您的问题

正如有人在该问题中指出的,您可能需要在Angular Router之外完成动态路由。也就是说,您可以添加一个通配符路由,该路由指向一个组件,该组件可以手动读取URL并构建适当的视图。基本上,建立你自己的路由器


如果您希望整个应用程序具有动态路由功能,我认为您可能需要使用与官方Angular router不同的路由器。

我有一个大型应用程序,完全可以配置该应用程序来呈现页面。当我们使用多语言功能时,路由器链接也发生了变化,我知道这可能是一个糟糕的设计,但在我们改变应用程序的核心之前,我们希望它现在能正常工作。我的服务有一个资源图,可以获取密钥的值,我正在寻找一种方法,通过它我可以构建我的路由器。