如何为RouterModule提供服务,以便根据某些参数动态注入路由?
请注意,此参数也是动态的(它来自bootstrapping之前的api调用).
我确实意识到通过使用RouterModule.forRoot(这是一个静态函数),我对注入服务非常有限.
您需要为 ROUTES 令牌提供一个生成路由配置并采用该参数的函数。此外,您还需要提供该参数。
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]},
]
Run Code Online (Sandbox Code Playgroud)
如何提供该参数取决于您。你可以使用另一个工厂。
更新:由于路由配置现在是动态的,因此您还必须提供一个entryComponents 属性,其中包含初始页面加载所需的所有组件。
| 归档时间: |
|
| 查看次数: |
1484 次 |
| 最近记录: |