角路由:如何对传递给RouterModule.forRoot的阵列应用自定义

我希望传递一个基于用户的权限和组织返回路由数组的类(或函数),而不是将静态数组传递给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!

任何建议将不胜感激。

hang116026 回答:角路由:如何对传递给RouterModule.forRoot的阵列应用自定义

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3163294.html

大家都在问