#angular #angular-routing #angular7 #angular-module
#угловая #угловая маршрутизация #angular7 #angular-module
Вопрос:
У меня есть отложенный загруженный модуль, который по умолчанию имеет значение SuperUserComponent
внутри этого компонента у меня есть переключение навигации с помощью ngSwitchCase между 4-5 дочерними компонентами. Поскольку я использую это с nativescript, мне нужно иметь отдельный модуль маршрутизации для всего этого модуля маршрутизации.
Внутри моего основного модуля маршрутизации у меня есть:
{
path: 'super-user',
loadChildren: './super-user/super-user.module#SuperUserModule',
pathMatch: 'full'
},
Внутри собственного дочернего модуля маршрутизации модуля у меня есть:
const routes: Routes = [
{
path: ':resource',
component: SuperUserComponent,
pathMatch: 'full'
}
];
Переключатели для switchase следующие:
<mat-button-toggle
[routerLink]="['/super-user', 'manage-users']"
value="manage-users"
>
Users
</mat-button-toggle>
И на серверной части я прослушиваю этот параметр каждый раз, когда загружаю основной компонент:
this.paramSubscription = this.route.paramMap.subscribe(params => {
const newValue = params.get('resource');
this.superUserMenu = newValue;
});
Как я могу настроить этот дочерний модуль маршрутизации так, чтобы он соответствовал этому параметру при загрузке?
Ответ №1:
Провел небольшое исследование, все, что вам нужно, это изменить ваш модуль mai nrouting
{
path: 'super-user',
loadChildren: './super-user/super-user.module#SuperUserModule',
pathMatch: 'prefix'
}
или просто удалите эту строку pathMatch: 'prefix'
, если вам это не нужно. Я думаю, вы просто заставляете angular находить маршрут, который заканчивается на ‘super-user’, но он, естественно, не может этого сделать.
Комментарии:
1. Ах, я, честно говоря, не знаю точно, как вообще работает этот параметр pathMatch, просто каждый раз, когда у меня возникали проблемы с маршрутизацией всех потоков / руководств, которые я мог, ifnd предложил бы сделать это «полным», поэтому после того, как я перестал задавать вопросы. В итоге я сделал что-то вроде
./super-user/:resource/super-user.module#...
, а затем из моего меню кнопка приведет вас непосредственно к одному из подресурсов с значением по умолчанию. Я также попробую использовать ваш вариант!