Определите различные маршруты внутри routing.module

Я хочу определить разные маршруты в соответствии с флагом. Это часть

приложение-routing.module.ts

 import { Token } from "...";  //  InjectionToken

 let routes: Routes;
 @NgModule({
   imports: [RouterModule.forRoot(routes)],
   exports: [RouterModule]
})
export class AppRoutingModule {
  constructor(@Inject(Token) private token) {
    if (this.token) {
      routes = [...]
    }
    else {
       routes =[...]
    }
  }

К сожалению, вышесказанное не работает. Есть идеи, как добиться того, чего я хочу?

1 ответ

Решение

Попробуйте установить конфигурацию маршрутизатора, как показано ниже:

import { Token } from "...";  //  InjectionToken

 let routes: Routes;
 @NgModule({
   imports: [RouterModule.forRoot(routes)],
   exports: [RouterModule]
})
export class AppRoutingModule {
  constructor(@Inject(Token) private token,
   router: Router) {
    let config = router.config;
    if (this.token) {
      routes = [...]
    }
    else {
       routes =[...]
    }
    config = routes;
    router.resetConfig(config);
  }
}

Рабочий пример здесь https://stackblitz.com/edit/angular-emnqvb

Другие вопросы по тегам