Угловой материал, открывающий два диалога после резюме в Кордове - PullRequest
0 голосов
/ 03 октября 2018

Я использую Angular 6 в приложении Cordova для Android.Когда пользователь удаляет элемент в списке, я открываю диалоговое окно Угловой материал, чтобы спросить пользователя, уверены ли они, что хотят удалить элемент.

Это прекрасно работает, когда я загружаю приложение в первый раз, но когда я покидаю приложение и возвращаюсь (события Cordova pause и resume) и снова открываю диалоговое окно, кажется, что два диалоговых окнаopen.

При закрытии и повторном открытии приложения Angular делает что-то странное с привязкой свойств, поэтому я вызываю ChangeDetectorRef.detectChanges(), чтобы загрузить все вручную.Кажется, это проблема для диалога, потому что когда я удаляю этот вызов, диалог обычно функционирует.

Это не визуальная ошибка, потому что, когда я хочу закрыть диалоговое окно, мне нужно дважды нажать кнопку «Отмена».

Полный код, когда происходит событие возобновления:

document.addEventListener("resume", () => {
  this.measurementService.findMeasurement(this._orderId)
    .then((measurement: Measurement) => {
      this.measurementService.MeasurementChanged.emit(measurement)
      this.buttonText = this.ADD_BUTTON_TEXT;
      this.change.detectChanges();
    }).catch(() => {
      this.buttonText = this.START_BUTTON_TEXT;
    })

}, false); 

Что происходит на экране:

enter image description here

...