angular-material - 角度 Material mat-sidenav 异步内容区域未渲染在正确的位置

标签 angular-material sidenav

我有一个非常适合模拟数据的 sidenav,但是当我从休息服务异步加载 sidenav 的数据时,内容部分会呈现在整个页面区域上,然后当异步调用返回时,sidenav 就会呈现,并最终覆盖部分内容区域。如果我关闭侧导航并再次打开,它看起来会找到。但是,在初始加载时,我看不到内容的左侧部分。

    <mat-sidenav-container fullscreen class="main-sidenav-container">
    <mat-sidenav #sidenav mode="side" opened>
        <mat-nav-list>
            <mat-list-item disa *ngFor="let navBarItem of observableNavBarItems|async" (click)="onSelected(navBarItem.value)">
                <img mat-list-icon class="{{navBarItem.icon}}" />
                <h4  mat-line>{{navBarItem.name}}</h4>
        </mat-list-item>
        </mat-nav-list>
        </mat-sidenav>
    <mat-sidenav-content>
      <router-outlet></router-outlet>
    </mat-sidenav-content>
</mat-sidenav-container>

关于如何解决这个问题有什么想法吗?

最佳答案

我通过根据 Angular Materials 文档设置以下 MatDrawerContainer 属性解决了类似的问题(使用 MatDrawer):https://next.material.angular.io/components/sidenav/api

  • @Input() 自动调整大小: bool 值

    是否在大小达到时自动调整容器大小 它的任何抽屉都会发生变化。

    使用风险自负!启用此选项可能会导致布局抖动 通过在每个变化检测周期测量抽屉。可 通过 MAT_DRAWER_DEFAULT_AUTOSIZE token 进行全局配置。

就我而言:

<mat-drawer-container autosize="true" >
  <mat-drawer #drawer mode="side" opened="true">
    ...
  </mat-drawer>
  <mat-drawer-content>
    ...
  </mat-drawer-content>
</mat-drawer-container>

关于angular-material - 角度 Material mat-sidenav 异步内容区域未渲染在正确的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48956062/

相关文章:

Angular Material : How to close all mat-dialogs and sweet-alerts on logout

javascript - Angular Material dialogRef.afterClosed().subscribe 无法处理错误

angular - 当焦点放在 Mat-Select 上时,在 Angular 中打开 Mat-Select 下拉菜单

Angular Material sidenav悬停

Angular Material 不可滚动 sidenav

javascript - md-tabs 不显示分页

mongodb - Angular Material 2 使用 Angular 5 自动完成

css - 提供溢出值会隐藏嵌套的 sidenav

css - 使用 Angular Material 在sidenav中添加标题