Угловой 5 материал снэк-бар не отображается правильно только для пользовательских ErrorHandling, в противном случае он работает нормально - PullRequest
0 голосов
/ 16 мая 2018

Угловой материал 5, материальная закусочная не отображается правильно только для пользовательского ErrorHandling, в противном случае он работает нормально:

Я пытаюсь показать свои ошибки в бэкэнде, используя материальную закусочную, проблема в том, что 1-й разсрабатывает, появляется не в том месте (не в нижней средней части, как следует, а влево) и остается там навсегда, не исчезая (должно автоматически исчезнуть через 2 секунды в соответствии с моей конфигурацией)

Дляв следующий раз, когда он появится, он появится правильно и исчезнет через 2 секунды.

Пожалуйста, попробуйте проблему здесь: Пример stackblitz, показывая мою проблему.

код стекаблиц здесь

Спасибо

1 Ответ

0 голосов
/ 16 мая 2018

Мне понадобился целую вечность, чтобы найти ответ, я не очень уверен, почему он работает так, но он работает, поэтому я надеюсь, что это поможет кому-то еще.

Мы должны использовать что-то под названием NgZone при вызовематериальная закусочная в ErrorHandler (я думаю, из-за того, что ErrorHandler вызывается особым образом в Angular)

Таким образом, код вызова Снэк-бара должен быть:

constructor(private matSnackBar: MatSnackBar, private zone: NgZone, private dataService: DataService) { }
notify (message: string) {
    this.zone.run(() => {
      this.matSnackBar.open(message, '' , {
        duration: 2000
      });
    });
  }

Обновлен Stackblitzсейчас работает

...