Позвольте мне сначала ознакомится с моим кодом, а затем с вопросом, с которым я столкнулся. Ниже приведен код моего основного маршрута app.routes.ts
:Параметр Angular2, инициализирующийся два раза во время маршрутизации
export const routes: RouterConfig = [
...LoginRoutes,
...DashboardRoutes,
{path:'dashboard', component: DashboardComponent, canActivate:[AuthGuard]}
];
export const APP_ROUTER_PROVIDERS = [
provideRouter(routes), [AuthGuard,AuthService, CanDeactivateGuard]
];
DashboardRoutes
выглядит следующим образом:
export const DashboardRoutes = [
{
path:'dashboard',
component: DashboardComponent,
children:[
{path:'New', component:NewData, canActivate:[AuthGuard], canDeactivate:[CanDeactivateGuard]},
{path:'SavedData', component:SavedData, canActivate:[AuthGuard]},
{path:'NewIncentive', component:NewIncentive, canActivate:[AuthGuard]}
],
canActivate:[AuthGuard]
}
];
Теперь, когда я перехожу на страницу приборной панели, моя панель компонент инициализирует, который абсолютно нормально. Но если я перемещаюсь по любому компоненту дочернего маршрута на панели управления, компонент панели инструментов снова инициализируется; только однажды. Моя вторая проблема заключается в том, что когда я уже объявляю Маршрут для Компонент Дехбаорд в DashboardRoutes
, то почему мне нужно объявить его снова в app.routes.ts
? Если я удалю его объявление с app.routes.ts
, он не работает. Любая помощь приветствуется.
Трудно сказать. Пожалуйста, предоставьте Plunker. –
Почему вы используете '{path: 'dashboard', компонент: DashboardComponent, canActivate: [AuthGuard]}' в 'app.routes.ts' снова? – micronyks
@micronyks Если я удалю его, приложение перестанет работать. –