Я использую 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](https://i.stack.imgur.com/We8P4.gif)