В настоящее время у меня есть маршруты, настроенные что-то вроде
const routes: Routes = [
{path: "", redirectTo: "route1", pathMatch: "full"},
{path: "route1", children: [
{path: "", redirectTo: "subRoute1", pathMatch: "full"},
{path: "subRoute1", component: SubRouteComponent}
]}
]
Который перенаправляет на {domain}/route1/subRoute1 с доступом только к {domain}.
Тогда в моих компонентах у меня есть что-то вроде
<a [routerLink]="['/route1/subRoute1']">Link</a>
=============================
МОЯ ПРОБЛЕМА:
=============================
Я хочу добавить новый корневой путь URL ко всему приложению, который применяется ко всем маршрутам, но я не хочу менять все экземпляры [routerLink], чтобы они указывали на этот новый путь.
Так, например, я хочу изменить маршрутизацию следующим образом, где site1 — это новый корневой URL-адрес:
const routes: Routes = [
{path: "", redirectTo: "site1", pathMatch: "full"},
{path: "site1", children: [
{path: "", redirectTo: "route1", pathMatch: "full"},
{path: "route1", children: [
{path: "", redirectTo: "subRoute1", pathMatch: "full"},
{path: "subRoute1", component: SubRouteComponent}
]}
]}
]
И тогда мне пришлось бы изменить routerLinks на
<a [routerLink]="['/site1/route1/subRoute1']">Link</a>
Насколько я знаю, мне пришлось бы изменить все экземпляры [routerLink] в коде, чтобы отразить это новое изменение пути URL, ЧЕГО Я ПЫТАЮСЬ ИЗБЕЖАТЬ.
У меня потенциально могут быть сотни ссылок [routerLink], помимо необходимости часто менять этот корневой путь.
Решение, над которым я сейчас работаю, заключается в обнаружении вызова маршрутизации «NavigationStart» и изменении пути в этой точке, чтобы добавить новый корневой путь, но я не думаю, что это сработает так, как я надеялся.
Кроме того, это еще один способ справиться с этим: https://angular.io/guide/router#change-heroes-to-superheroes
Но я хочу избежать раздутой конфигурации маршрутизации.