angular - 如何从子组件打开 MdSidenav?

标签 angular typescript angular-material2

我正在使用 angular-material2 库中的 MdSidenav 组件,我想从另一个组件打开 MdSidenav。所以我想从另一个组件(即子组件)使用局部变量 #sidenav(在父组件中)的功能。

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

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

 <div class="my-content">
  <router-outlet></router-outlet>
 </div>
</md-sidenav-container>

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

<div class="menu">
 <button (click)="sidenav.open()"></button>
</div>

最佳答案

我也遇到过类似的情况。你可以这样做:

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

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

然后在菜单组件中:

@Input() nav;

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

关于angular - 如何从子组件打开 MdSidenav?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41487803/

相关文章:

angular - 在 app.module.ts 中注册服务与 angular4 中的单个组件相比有什么好处?

javascript - Jest 路径映射错误 : Could not locate module xyz mapped as: abc

javascript - 有没有在 TypeScript 项目中使用 JavaScript 模块的正确方法?

Angular 垫 : Form validation causes "jit_nodeValue_6(...).hasError() is not a function"

angular-material2 - 更改 Angular Material 的 md-slider 的默认背景颜色

angular - Mat-checkbox checked 不改变复选框状态

typescript - angular2-google-maps 标记的点击事件

angular - 使用服务的 2 个组件 Angular 6/7 之间的交互不起作用

angular - 错误TypeError : Cannot read property 'codeSprint' of undefined at Object.eval [as updateRenderer] using Angular

javascript - 如何检查三元运算符中的 undefined variable ?