Как я могу проверить причину увольнения с помощью закусочной Angular Material?

В примере с закусочной в документации по материалам Angular действие установлено на undo. Я также хочу отменить закуску.

Но есть одна проблема. Событие afterDismissed запускается при нажатии кнопки отклонения, но также и по истечении заданного времени. Таким образом, моя кнопка очистки формы очистит форму и покажет снэк-бар, но через 5 секунд ввод вернется.

Есть ли способ проверить, вызывается ли закрытие кнопкой отмены? Я не хочу использовать собственную закусочную, потому что мне нужно переделать дизайн закусочной ...


person Jan Wytze    schedule 24.01.2018    source источник


Ответы (2)


Когда вы подписываетесь на событие afterDismissed, вы должны иметь возможность узнать, произошло ли это событие из действия закусочной или нет.

Так, например, если вы откроете закусочную:

const snackBarRef = this.snackBar.open('Dummy message', 'Undo', {duration: 5000});

Тогда подпишитесь на событие:

snackBarRef.afterDismissed().subscribe(info => {
  if (info.dismissedByAction === true) {
    // your code for handling this goes here
  }
});
person Nicholas Coles    schedule 26.03.2018

Я не уверен, когда он был добавлен, но MatSnackbarRef теперь включает отдельный наблюдаемый объект для onAction, который вызывается только при фактическом нажатии кнопки.

person Coderer    schedule 23.05.2018