Учитывая, что вы хотите настроить имена маршрутов при создании конфигурации маршрута.
Позволяет использовать свойство данных routes'
для добавления имен в маршруты.(Небольшие дополнительные данные в каждом маршруте не должны влиять на производительность).
Но сначала давайте создадим класс, который содержит статическое свойство для хранения имен маршрутов и их фактических путей.
export class RouteNames {
public static routeNamesObject = {}
}
Теперь в вашем компоненте маршрутизации, где вы определили маршруты, давайте сделаем так:
const routes: Routes = [
{path: "hello/:id", component: HelloComponent, data: {routeName: "Hello1"}},
{path: "hello", component: HelloComponent, data: { routeName: "Hello2" }}
]
Сразу после инициализации этой переменной установите статическую опору класса RouteNames
routes.forEach((eachRoute) => {
RouteNames.routeNamesObject[eachRoute.data.routeName] = eachRoute.path; // now all route paths are added to this prop
})
Сделайте общедоступнымпеременная в вашем компоненте для доступа к статическому классу
Как в app.component.ts: (вам не нужно внедрять)
public routeNames = RouteNames;
Тогда app.component.html
будет выглядеть примерно так:
<button [routerLink]="routeNames.routeNamesObject['Hello2']">Click to Navigate to Hello</button>