Angular 如何从子组件打开MdSidenav?

Angular 如何从子组件打开MdSidenav?,angular,typescript,angular-material2,Angular,Typescript,Angular Material2,我正在使用angular-material2库中的MdSidenav组件,我想从另一个组件打开MdSidenav。因此,我想使用来自另一个组件(即子组件)的局部变量#sidenav(即父组件)的函数 父组件: src/app/app.component.html 你好 子组件:src/app/menu/menu.component.html 我也有同样的情况。您可以这样做: <md-sidenav-container> <md-sidenav #sidenav>

我正在使用angular-material2库中的MdSidenav组件,我想从另一个组件打开MdSidenav。因此,我想使用来自另一个组件(即子组件)的局部变量#sidenav(即父组件)的函数

父组件: src/app/app.component.html


你好
子组件:src/app/menu/menu.component.html


我也有同样的情况。您可以这样做:

<md-sidenav-container>
  <md-sidenav #sidenav>
     <h1>Hello</h1>
  </md-sidenav>

  <menu [nav]="sidenav"></menu>
</md-sidenav-container>

我也有同样的情况。您可以这样做:

<md-sidenav-container>
  <md-sidenav #sidenav>
     <h1>Hello</h1>
  </md-sidenav>

  <menu [nav]="sidenav"></menu>
</md-sidenav-container>

子组件是否在路由器出口中?是的。我想我必须使用服务,对吗?是的。在这种情况下,您需要一项服务。子组件是否在路由器出口中?是的,它是。我想我必须使用服务,对吗?是的。那样的话,你需要服务。
<md-sidenav-container>
  <md-sidenav #sidenav>
     <h1>Hello</h1>
  </md-sidenav>

  <menu [nav]="sidenav"></menu>
</md-sidenav-container>
@Input() nav;

openSideNav(){
   this.nav.open();
}