В файле app.module у меня в настоящее время есть массив маршрутов, который выглядит следующим образом:
const ROUTES = [
{ path: '', redirectTo: 'component1', pathMatch: 'full' },
{
path: 'component1',
component: Component1Component,
canActivate: [AuthGuardService]
},
{
path: 'component2'
component: Component2Component,
canActivate: [AuthGuardService]
},
{
path: 'signin-callback',
component: SigninRedirectCallbackComponent
},
{ path: '**', redirectTo: '', pathMatch: 'full' }
];
Я хочу разделить этот массив на два массива PROTECTED_ROUTES
и UNPROTECTED_ROUTES
. В функцию getAllRoutes
для всех маршрутов в массиве PROTECTED_ROUTES
следует добавить параметр canActivate: [AuthGuardService]
. После этого два массива объединяются и возвращаются.
Примерно так:
const PROTECTED_ROUTES = [
{
path: 'component1',
component: Component1Component
},
{
path: 'component2'
component: Component2Component
}
];
const UNPROTECTED_ROUTES = [
{ path: '', redirectTo: 'component1', pathMatch: 'full' },
{
path: 'signin-callback',
component: SigninRedirectCallbackComponent
},
{ path: '**', redirectTo: '', pathMatch: 'full' }
];
function getAllRoutes() {
// let protectedRoutes = PROTECTED_ROUTES;
// protectedRoutes.forEach(r =>
// r.
// somehow add canActivate: [AuthGuardService]
// );
protectedRoutes = protectedRoutes + UNPROTECTED_ROUTES //pseudo code
return protectedRoutes;
}
Возможно ли добавить параметры в записи массива объектов впоследствии? Можно ли объединить два массива объектов, если они имеют разные параметры?