Я создаю одностраничное приложение с использованием angular2, и ему необходимо отображать другой шаблон приложения в зависимости от маршрутизации приложения. На самом высоком уровне он должен иметь возможность переключаться между шаблоном основного приложения и шаблоном администратора приложения.
Правила маршрутизации:
- Если путь URL-адреса начинается с /auth, то он обрабатывается приложением AuthApp.
- Если он начинается с чего-то другого, то он должен обрабатываться MainApp.
Реализация:
Для этого у меня есть компонентное приложение на самом высоком уровне, которое делегирует ответственность либо AuthApp, либо MainApp, например.
@RouteConfig([
{
path: '/auth/...',
component: AuthApp,
as: 'Auth'
},
{
path: '/...',
component: MainApp,
as: 'Main'
}
])
Затем каждое вспомогательное приложение (например, AuthApp, MainApp) имеет свои собственные определения маршрута, такие как это.
@RouteConfig([
{ path: '/current-vacancies', CurrentVacancies, as: 'CurrentVacancies', useAsDefault: true },
{ path: '/candidates/create', CandidateCreate, as: 'CandidateCreate'},
...
])
Функционально и с точки зрения дизайна это работает отлично!
Проблема:
В основном приложении, где конфигурация маршрута приложения не указывает путь (например, /...
=> MainApp), мне не нужен вложенный URL-адрес. Например, если вы переходите через приложение (routerLink) к CurrentVacances, оно обновляет URL-адрес и добавляет в начало нежелательную косую черту. Путь URL-адреса теперь выглядит так .../#//current-vacancies
, когда я хочу, чтобы он читался как .../#/current-vacancies
.
Реальная маршрутизация приложений работает, когда вы набираете .../#/current-vacancies
в адресной строке, она переходит правильно. Тем не менее, навигация через директиву routerLink приложений добавляет нежелательную косую черту.
Я логически понимаю, почему это происходит, корневой компонент, который делегирует MainApp, имеет путь «/», и он объединяется вместе с дочерними компонентами, чтобы сформировать полный путь URL. НО в этом случае не желательно иметь дополнительную косую черту. Любые идеи, как я могу удалить его или как-то переопределить это поведение.
Кстати, я подумал о переносе маршрутизации компонента MainApp на самый верхний уровень, и хотя это действительно решает проблемы с путями URL, о которых я сообщаю, это не позволяет мне переключать шаблоны на верхнем уровне.
Вкратце
Пожалуйста, помогите мне с
- как удалить нежелательные
/
на основных маршрутах приложений"preferred option"
или - как спроектировать приложение, чтобы оно имело переключаемые шаблоны верхнего уровня с маршрутизацией вложенных компонентов.
Спасибо