繁体   English   中英

Angular cdk 断点和普遍问题

[英]Angular cdk breakpoints and universal issue

当渲染角度通用时,断点命中来得太晚了。 我正在使用 mat-sidenav,它希望根据断点将抽屉设置为打开或不打开。 渲染ssr的时候好像没有断点信息。

例如,这在构造函数中:

this.isHandset$ = this.breakpointObserver.observe(Breakpoints.Handset)
    .pipe(
        map(result => result.matches)
    );

在视图中:

<mat-sidenav-container class="sidenav-container" fullscreen>
<mat-sidenav class="sidenav" 
    [opened]="(isHandset$ | async) === false">  <!-- close if handset -->
... etc

在应用程序水合之后(在完整的角度项目加载之后)抽屉根据视口大小打开/关闭,但最初不是。

如何使断点也适用于通用?

我目前正在使用 angular 9 rc,但在 8 中存在同样的问题。

您可以使用startWith定义在任何断点之前首先发出的默认值。

this.isHandset$ = this.breakpointObserver.observe(Breakpoints.Handset)
    .pipe(
        map(result => result.matches),
        startWith(false)
    );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM