Angular 7 разных меню для разных страниц

#angular7

#angular7

Вопрос:

Компонент приложения настроен таким образом, я хочу создать страницу администратора и как разместить другое приложение-панель навигации

  <app-nav></app-nav>
<router-outlet></router-outlet>

<app-footer></app-footer>
  

Это мой модуль укоренения.

какие изменения я должен здесь внести

 const routes: Routes = [
  { path: 'Home', component:NavComponent,children:[{path:'',component:HomeComponent}] },
  { path: 'Teams', component:TeamsComponent,outlet:'sub' },
  { path: 'Calendar', component:CalendarComponent },
  { path: 'Fixture', component:FixtureComponent },
  { path: 'Gallery', component:GalleryComponent },
  { path: 'Partners', component:PartnersComponent },
  { path: 'Streams', component:StreamsComponent },
  { path: 'Videos', component:VideoComponent },
  {path:'Login',component:LoginComponent},
  {path:'Ctrl',component:AdminComponent},
  { path: '**', redirectTo: 'Home', pathMatch: 'full' }

];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule {

   constructor(){

   }

 }
  

Ответ №1:

Попробуйте определить макет на основе вашего маршрута

FooterOnlyLayoutComponent:

 <div class="content" fxFlex>
 <router-outlet></router-outlet>
</div>

<app-footer></app-footer>
  

Чтобы использовать этот макет для маршрута входа, маршрут должен быть указан следующим образом:

 const routes: Routes = [
 {
   path: 'login',
   component: FooterOnlyLayoutComponent,
   children: [
     { path: '', component: LoginComponent },
   ]
 }
];

@NgModule({
 imports: [RouterModule.forChild(routes)],
 exports: [RouterModule]
})
export class LoginRoutingModule { }
  

Другой макет :

MainLayoutComponent:

 const routes: Routes = [
 {
   path: 'dashboard',
   component: MainLayoutComponent,
   children: [
     { path: '', component: DashboardComponent }
   ]
 }
];

@NgModule({
 imports: [RouterModule.forChild(routes)],
 exports: [RouterModule]
})
export class DashboardRoutingModule { }
  

Комментарии:

1. Нужно ли мне создавать новый модуль? app-routing.module.ts бесполезен?

2. Можете ли вы снова просмотреть модуль?

3. Нет, вы можете просто определить весь свой маршрут в одном массиве и указать component в качестве базового макета для вашего children

4. { путь: ‘Home’, компонент: NavComponent, дочерние элементы: [ { путь: «, компонент: HomeComponent }, ] }, не так ли? импортирует: [RouterModule.forRoot(маршруты)],

5. Да, теперь ваш код будет деформироваться HomeComponent изнутри NavComponent . не забудьте добавить свой HTML в NavComponent и поместить <router-outlet></router-outlet>