我不确定这是否可行,但我想在打开特定路线时隐藏一个全局组件。
比如说我有以下内容:
app.component.html
<app-header></app-header>
<app-banner></app-banner> <!-- Global Component I want to hide -->
<div class="body-container">
<router-outlet></router-outlet>
</div>
<app-footer></app-footer>
应用程序路由.module.ts
import {NgModule} from '@angular/core';
import {Route, RouterModule} from '@angular/router';
import { StudentListComponent } from './Components/StudentList/StudentList.component';
import { SchoolMottoComponent } from './Components/SchoolMotto/SchoolMotto.component';
const routes: Routes = [
{path: 'StudentList', component: StudentListComponent },
{path: 'SchoolMotto', component: SchoolMottoComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
export const routingComponents = [StudentListComponent, SchoolMottoComponent]
有了这个,当我想查看 StudentList 组件时,默认情况下 url 变为 localhost4200:/StudentList 并且与 SchoolMotto 相同,它变为 localhost4200:/SchoolMotto。
在 StudentListComponent 中,是一个显示学生列表的 ag-grid,当您单击其中一个学生时,url 变为如下所示:localhost4200:/StudentList/view/cf077d79-a62d-46e6-bd94-14e733a5939d 及其另一个子- SchoolList 的组件,显示该特定学生的详细信息。
当 url 有这样的内容时,我想隐藏全局横幅组件:localhost4200:/StudentList/view/cf077d79-a62d-46e6-bd94-14e733a5939d。仅当用户查看学生的具体详细信息时。
像这样的东西:
app.component.html
<app-header></app-header>
**<app-banner *ngIf="router != '/StudentList/view/'"></app-banner> <!-- Global Component I want to hide -->**
<div class="body-container">
<router-outlet></router-outlet>
</div>
<app-footer></app-footer>
这是可行的还是不可行的?如果是,怎么做?