css - 如何在 angular5 项目中为管理员和用户使用单独的模板?
问题描述
这是我的index.html
页面。我只使用一个索引页。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Angular5</title>
<base href="/">
<link rel="icon" type="image/png" href="assets/img/favicon.ico">
<link rel="apple-touch-icon" sizes="76x76" href="assets/img/apple-icon.png">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
<meta name="viewport" content="width=device-width" />
<!-- Fonts and icons -->
<link href='https://fonts.googleapis.com/css?family=Montserrat:400,300,700' rel='stylesheet' type='text/css'>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css" rel="stylesheet">
</head>
<body>
<app-root></app-root>
</body>
</html>
解决方案
是的,您可以这样做,您将使用 Angular 5 路由并设置两条路由,一条为用户,一条为管理员,这样用户会去,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,然后将其制作出来,这样您就可以为每个组件创建一个单独的模板
推荐阅读
- javafx - 使用 Jfoenix 9.0.9 在 JavaFX 中开发的正确设置
- symfony - 在 easy-admin 包中添加虚拟属性
- google-app-maker - 使用复选框过滤表视图上的布尔值。继承的(关系)数据源
- rx-java - 在不包含所有项目的集合上引发错误
- windows - 创建一个带有循环的 cmd 文件(wget 递归下载)
- html - 我无法将我的 CSS 链接到我的 HTML,这让我发疯
- c++ - 在类成员函数中声明类成员变量
- ios - Apple 设备上发生的误导请求
- r - 为什么 rbind() 有效而 bind_rows() 在组合这些 sf 对象时无效?
- javascript - 如何从服务人员中删除多个打开的缓存