要正确触发 Sidenav 切换动画的隐藏和显示,需要在组件中手动设置 Sidenav 的 opened
属性。具体地,可以通过使用 ViewChild
获取 MatSidenav
实例,并在需要切换时将其 opened
属性设置为相反的值。例如:
// component
import { Component, ViewChild } from '@angular/core';
import { MatSidenav } from '@angular/material/sidenav';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent {
@ViewChild(MatSidenav) sidenav: MatSidenav;
toggleSidenav() {
this.sidenav.opened = !this.sidenav.opened;
}
}
注意在模板中要设置 Sidenav 的 opened
属性为初始值(如上例中的 true
)。然后通过点击按钮触发 toggleSidenav()
方法,该方法会将 opened
属性设置为相反值,从而正确触发 Sidenav 切换动画的隐藏和显示。