Угловой материал: закусочная скрыта за компонентом с высоким z-индексом - PullRequest
0 голосов
/ 01 сентября 2018

Так что я немного поиграюсь с Angular, и я хотел добавить в мое приложение материальную закусочную на случай, если в моем приложении будет ошибка.

Итак, у меня есть hompage, и моя навигация - это оверлей с z-индексом 3000. В навигации есть опция для входа (см. Рисунок ниже). Я специально ввел неверные данные в журнале, чтобы вызвать обработчик ошибок и заставить появиться снэк-бар.

Снэк-бар действительно появляется. Тем не менее, он скрыт за навигацией. Как сделать так, чтобы оно отображалось над навигацией? Я попытался добавить z-index 10000 к scss компонента, который обрабатывает закусочную со следующим кодом:

* {
z-index: 10000;
}

и

::root {
z-index: 10000;
}

Но никто не работал. Кто-нибудь знает, как это сделать?

App.component.ts: пользовательская навигация - это то место, где я обрабатываю вход в систему. Уведомления содержат логику для закусочной

<navigation></navigation>
<user-navigation>

</user-navigation>
<router-outlet></router-outlet>
<notifications></notifications>

Notifications.component.ts, это работает, открывает снэк-бар, но скрыто за пользовательской навигацией

import { Component, OnInit } from '@angular/core';
import {MatSnackBar} from '@angular/material';
import {NotificationService} from '../services/notification.service';

@Component({
  selector: 'notifications',
  templateUrl: './notifications.component.html',
  styleUrls: ['./notifications.component.css']
})
export class NotificationsComponent implements OnInit {

  constructor(public snackBar: MatSnackBar, private notificationService: NotificationService) { }

  ngOnInit() {
    this.notificationService.notification$
        .subscribe((message) => {
          console.log('received the notification', message);
          this.openSnackBar(message);
        });
  }

  openSnackBar(message: string, action?: string) {
    setTimeout(() => {
      this.snackBar.open(message, action, {
        duration: 20000
      });
    }, 0);
  }
}

Это страница входа. Домашняя страница находится позади этого и не видна из-за высокого z-индекса, который я дал навигации

enter image description here

Это домашняя страница, когда я закрываю навигацию. Снэк-бар виден, но я хочу иметь возможность видеть его и при открытой навигации

enter image description here

Ответы [ 3 ]

0 голосов
/ 01 сентября 2018

Вы не можете просто поставить элемент <notifications> сверху?

<notifications></notifications>
<navigation></navigation>
<user-navigation></user-navigation>
<router-outlet></router-outlet>
0 голосов
/ 02 сентября 2018

Попытайтесь поместить это в ваш базовый / корневой файл CSS, если у вас его нет, попробуйте добавить теги в ваш файл index.html и добавьте туда этот CSS.

 :host /deep/ .cdk-overlay-pane{
   z-index: 1000;
 }
0 голосов
/ 01 сентября 2018

вы можете попробовать переопределить этот класс CSS

style.css / style.scss

.cdk-overlay-pane{
  z-index: 10000 !important;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...