从任何组件动态更改mat-sidenav内容

问题描述 投票:1回答:1

我正在基于按钮单击之类的操作,从不同的路由组件中加载mat-sidenav中的不同组件?

我创建了一个单例服务'SidenavService',以使用@ViewChild获得对mat-sidenav的引用,这样我就可以从应用程序中的任何位置控制(如打开,关闭,切换等。)sidenav。

[我还在mat-sidenav中创建了一个ng-container,并将其ViewConteinerRef存储在SidenavService中,现在在组件层次结构的任何组件中,我都可以注入SidenavService,并且可以使用ViewConteinerRef来创建嵌入式视图。

stackblitz链接https://stackblitz.com/edit/angular-material-sidenav-dynamic-content

是否有更好的方法来实现这一目标?从应用程序的任何位置在mat-sidenav中加载不同的组件。

我正在尝试通过单击按钮之类的操作从不同的路由组件中加载mat-sidenav中的不同组件?我创建了一个单例服务“ SidenavService”以获取引用...

angular angular-material2
1个回答
1
投票

[使用您的StackBlitz进行实验,我使用Angular CDK(组件DevKit)中的portal component提出了一个解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.