有没有办法检查 sidenav
元素是否打开?根据API文档中,有一个 isOpen?
参数,但在我的例子中它抛出一个异常:EXCEPTION: Error in ./AppComponent class AppComponent - inline template:2:2 caused by: this.sidenav .isOpen 不是函数
import { Component, OnInit, ElementRef } from '@angular/core';
@Component({
selector: 'app-sidebar',
template: `
<md-sidenav #sidenav mode="side" class="app-sidenav">
Sidenav
</md-sidenav>
`,
styleUrls: ['./sidebar.component.css'],
host: {
'(document:click)': 'onClick($event)',
}
})
export class SidebarComponent implements OnInit {
constructor(private sidenav: ElementRef) { }
ngOnInit() {
}
onClick() {
if (this.sidenav.isOpen()) {
this.sidenav.close();
}
}
}
最佳答案
你必须使用 ViewChild
来控制 sidenav
@ViewChild('sidenav') sidenav: any;
opened: any = false;
onClick() {
console.log(this.sidenav.opened);
}
关于angular - 检查material2 sidenav是否打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41591138/