angular2-routing - 如何在 Bootstrap 中动态提供路由?

标签 angular2-routing

如何为 RouterModule 提供服务,以便我可以根据某些参数动态注入(inject)路由?

请注意,此参数也是动态的(它来自引导之前的 api 调用)。

我确实意识到通过使用 RouterModule.forRoot (这是一个静态函数),我在注入(inject)服务方面受到了很大的限制。

最佳答案

您需要为 ROUTES token 提供一个生成路由配置并采用该参数的函数。此外,您需要提供该参数。

import {ROUTES} from '@angular/router/src/router_config_loader';
[...]
imports: [RouterModule.forRoot([])] // Empty on purpose
providers: [
  SomeParamForTheFunction,
  {provide: ROUTES, 
   multi: true, 
   useFactory: routesFunction, 
   deps: [SomeParamForTheFunction]},
]

如何提供该参数取决于您。你可以为它使用另一个工厂。

更新 :由于路由配置现在是动态的,因此您还必须提供一个 entryComponents 属性,其中包含初始页面加载所需的所有组件。

关于angular2-routing - 如何在 Bootstrap 中动态提供路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39588633/

相关文章:

Angular 2 相当于 href ="#someElementId"

requirejs 未加载 Angular2 路由

angular - 在同一路由器 socket 中加载嵌套路由

angular - 服务可观察在组件 NgOnInIt 中不起作用 - Angular2

javascript - Angular 2路由器无需重新加载即可更改网址

angular - 针对多个路由器 socket (主要+辅助)时的 routerLink 语法

Angular2 获取当前路径的别名

angular - 组件没有路由配置 - 嵌套路由 angular2 RC1

angular - 如何在 Angular 2 中使用路由器链接在元素内部建立链接

javascript - 在 Angular 中,如何确定事件路由?