【发布时间】:2018-09-23 03:45:04
【问题描述】:
正常角度。我这样做。
export class BasicLayoutComponent implements OnInit {
private mediaMatcher: MediaQueryList = matchMedia(`(max-width: ${SMALL_WIDTH_BREAKPOINT}px)`);
@ViewChild(MatSidenav) sidenav: MatSidenav;
@ViewChildren('sidenav') sidenavs: QueryList<MatSidenav>;
constructor(private _route: ActivatedRoute,
private _router: Router,
zone: NgZone) {
this.mediaMatcher.addListener(mql => zone.run(() => this.mediaMatcher = mql));
}
ngOnInit() {
this._router.events.subscribe(() => {
if (this.isScreenSmall()) {
if (this.sidenavs.first) {
this.sidenavs.first.close();
}
}
});
}
isScreenSmall(): boolean {
return this.mediaMatcher.matches;
}
}
但是当我使用 Angular Universal 进行服务器端渲染时,它不起作用。 我得到错误 ERROR { Error: Uncaught (in promise): ReferenceError: matchMedia is not defined
我该如何解决这个问题?
【问题讨论】: