Да, вы можете сделать это, вы бы использовали Angular 5 Routing и настроили два маршрута: один для пользователей и один для администраторов, чтобы пользователи переходили на example.com
, а администраторы - на example.com/admin
Сначала вы создали бы файл с именем app-routing.module.ts
и сделали бы его похожим на:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { UserLayoutComponent } from './pages/user-layout/user-layout.component';
import { AdminLayoutComponent } from './pages/admin-layout/admin-layout.component';
import { HomeComponent } from './pages/home/home.component';
import { AdminDashboardComponent } from './pages/admin/dashboard.component';
const routes: Routes = [
{ path: '', component: UserLayoutComponent, children: [
{ path: '', component: HomeComponent },
// Other Links that will look like example.com/example-link
] },
{ path: 'admin', component: adminLayoutComponent, children: [
{ path: '', component: AdminDashboardCompoent },
// Other Links that will look like example.com/admin/example-link
] }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
В вашем app.module.ts
вы будете импортировать
import { AppRoutingModule } from './app-routing.module';
затем добавьте его в свой импорт
imports: [
BrowserModule,
AppRoutingModule,
...
// Other Modules
],
Затем в вашем user-layout.component.html
вы добавите <router-outlet></router-outlet>
, где вы хотите, чтобы содержимое отображалось в шаблоне. так что если бы у вас было меню, вы бы сделали это так. То же самое для другого файла макета.
<div class="my-menu">
...
// Menu content
</div>
<router-outlet></router-outlet>
Ссылки будут выглядеть так <li routerLink="/admin">Admin Dashbord</li>
и <li routerLink="/">Home</li>
И CSS вы можете редактировать на каждом компоненте, а затем сделаете так, чтобы у вас был отдельный шаблон для каждого