ящик выдвижного ящика не обновляется с MediaObserver - PullRequest
0 голосов
/ 06 марта 2019

Прежде чем открыть вопрос, я хотел бы знать, если что-то не так с этим кодом.

Проблема заключается в использовании панели инструментов переключающего устройства в Chrome (от lg до xs).Все еще открыт.Если я обновлюсь, все будет нормально.

view

<mat-drawer-container>
  <mat-drawer
    #drawer
    class="sidenav mat-elevation-z1"
    mode="side"
    [opened]="opened"
  >
    <admin-layout-nav></admin-layout-nav>
  </mat-drawer>
  <main><router-outlet></router-outlet></main>
</mat-drawer-container>

ts

opened = true;
constructor(private media: MediaObserver) {
  let watcher = media.media$.subscribe((change: MediaChange) => {
    let activeMediaQuery = change
          ? `'${change.mqAlias}' = (${change.mediaQuery})`
          : '';
    if (change.mqAlias == 'xs') {
      this.opened = false;
    }
  });
}

RESOLVED

[opened]="opened$ | async"

this.opened$ = media.media$.pipe(
      map((change: MediaChange) => {
        if (change.mqAlias == 'xs') {
          return false;
        }
        return true;
      })
    );
...