我希望传递一个基于用户的权限和组织返回路由数组的类(或函数),而不是将静态数组传递给RouterModule.forRoot。
对我来说,挑战在于将服务引用注入到定制的路由器类中。另一个挑战是确保即使用户刷新浏览器也可以调用该类。
替代标准RouterModule参考。
@NgModule({
imports: [RouterModule],providers: [{ provide: RouterModule,useclass: CustomRouter }],exports: [RouterModule]
})
export class AppRoutingModule {
}
自定义路由器:
class CustomRouter implements OnInit { constructor( private authService: AuthService) { } ngOnInit() { this.build(); } build(): void { const routes: Routes = []; // Logic for determining the appropriate user-based routes. RouterModule.forRoot(routes); } }
我得到的错误是
NullInjectorError: No provider for ChildrenOutletContexts!
任何建议将不胜感激。