The*_*eal 12 angular-material angular
我在这个项目中使用Angular 2 Material sidenav:
app.component.ts (主要)html视图:
<md-sidenav-layout>
<md-sidenav #start mode="side" [opened]="true">
This is the main sidenav
<sidebar></sidebar>
</md-sidenav>
<md-sidenav #end align="end">
This sidenav suppose to open from different components across my application to show extra information/data when user clicks an image for example.
<br>
<button md-button (click)="end.close()">Close</button>
</md-sidenav>
<router-outlet></router-outlet>
</md-sidenav-layout>
Run Code Online (Sandbox Code Playgroud)
现在..为了打开#endsidenav我在同一个组件中使用以下按钮:
<button md-button (click)="end.open()">Open End Side</button>
但是,如果我想使用end.open()其他组件来切换sidenav,该怎么办?我应该怎么做sidenav"gloal"所以我可以在我的应用程序中的任何组件上打开它?
Gün*_*uer 12
通常使用共享服务.
在共同的祖先提供服务.控制打开状态的组件注入服务,并且要求控制组件更改状态的组件也注入服务.
当某个组件想要sidenav切换时,他们使用共享服务发送事件.控制切换的组件会侦听事件并根据请求进行切换.
有关详细信息,请参阅https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service
| 归档时间: |
|
| 查看次数: |
11169 次 |
| 最近记录: |