Определите различные маршруты внутри 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