我想为每个包含 / admin 的路由显示我的标头组件,或者显示具有这些网址的路由 / admin / dashboard,/ admin / users,/ admin / tasks < / strong>或者等等
app.component.html
<div id="page-wrap" class="inner-page {{router.url}}" *ngIf="router.url === '/admin'; else templateName">
<app-header></app-header>
<div class="page-content-wrap">
<app-sidebar></app-sidebar>
<div class="content-wrap panel-right">
<router-outlet></router-outlet>
</div>
</div>
</div>
<ng-template #templateName>
<div class="inner-page {{router.url}}">
<div class="container">
<flash-messages></flash-messages>
<router-outlet></router-outlet>
</div>
</div>
</ng-template>
但上面的代码只接受/ admin。你知道我怎么能添加一个通配符,以便它接受具有/ admin / tasks,/ admin / users的路由?
这是需要改进的条件:
<div id="page-wrap" class="inner-page {{router.url}}" *ngIf="router.url === '/admin'; else templateName">
感谢任何帮助。
答案 0 :(得分:2)
您可以编写一种方法来检查网址是/admin
还是以/admin/
开头:
isAdminRoute(value: string): boolean {
return /^\/admin(\/|$)/.test(value);
}
并在模板中调用它:
<div *ngIf="isAdminRoute(router.url); else templateName" ...>
您可以在this stackblitz中看到代码正常工作。
作为替代方案,您可以使用startsWith
字符串方法测试网址:
<div *ngIf="route.url === '/admin' || route.url.startsWith('/admin/'); else templateName" ... >