【发布时间】:2020-05-24 18:44:15
【问题描述】:
例如,假设我有一个 sidenav,需要根据用户所在的页面向其添加不同的项目。我可以通过门户网站做到这一点吗?
这是我的侧导航。我在考虑开发人员可以在组件中传递的页面,它显示在侧导航的 {{ComponentGoesHere}} 部分
<md-sidenav-container fullscreen>
<md-sidenav #sidenav mode="push" class="app-sidenav">
<md-toolbar color="primary">
<span style="flex: 1 1 auto"></span>
<button md-icon-button (click)="sidenav.toggle()" class="md-icon-button sidenav-toggle-button" [hidden]="!sidenav.opened">
<md-icon aria-label="Menu" class="material-icons">close</md-icon>
</button>
</md-toolbar>
<div>
**{{ComponentGoesHERE}}**
</div>
<h2>Navigation</h2>
<md-nav-list>
<a md-list-item class="sidenav-link" [routerLink]="['/comp1']" (click)="sidenav.toggle()">
<md-icon md-list-icon>account_balance</md-icon>
<span class="title" md-line>comp1</span>
<span md-line class="secondary">test</span>
</a>
<a md-list-item class="sidenav-link" [routerLink]="['/comp2']" (click)="sidenav.toggle()">
<md-icon md-list-icon>android</md-icon>
<span class="title" md-line>comp2</span>
<span md-line class="secondary">test</span>
</a>
</md-nav-list>
</md-sidenav>
<md-toolbar id="appToolbar" color="primary">
<button md-icon-button (click)="sidenav.toggle()" class="md-icon-button sidenav-toggle-button" [hidden]="sidenav.opened">
<md-icon aria-label="Menu" class="material-icons">menu</md-icon>
</button>
<h1>
<a class="title-link">My Navigation Bar</a>
</h1>
<span style="flex: 1 1 auto"></span>
<button id="button-logout" md-button>Log Out</button>
</md-toolbar>
<router-outlet></router-outlet>
</md-sidenav-container>
编辑:由于 sidenav 是全局的(存在于应用程序组件中),有没有办法查看特定页面加载时是否有门户组件?
假设我导航到一个名为“报告”的页面。门户看到报告有一个报告门户组件并将其加载到侧导航。
然后我导航到交易。门户看到事务有一个搜索功能门户组件并加载它。
然后我转到设置页面,门户发现没有组件,因此它隐藏了自己。
我希望这种方式是可能的,这样我只需要根据需要引用这些组件。
【问题讨论】:
-
@ChristopherPeisert 不,这有点不同。我正在寻找与门户网站有关的工作。我只需要知道如何订阅每个页面,如果该页面上有门户组件,然后将其放入门户中。
标签: angular typescript