Я отображаю таблицу Handsontable
, используя angular-wrapper
таблицы внутри моего приложения в mat-dialog
. Я использую таблицу для отображения данных электронных таблиц, и это означает, что внутри таблицы много данных.
Что происходит, когда я закрываю mat-dialog
или перехожу на другую страницу, все приложение перестает отвечать на запросынесколько секунд.
Я считаю, что таблица запускает некоторый onChange
слушатель во всех ячейках после уничтожения таблицы.
Моя теория такова, что при уничтожении экземпляра таблицы,в экземпляре таблицы происходит прослушивание onChange
, которое пытается выполнить некоторую обработку или рендеринг таблицы. Что совершенно не нужно в моем случае, потому что я просто хочу уничтожить таблицу.
Есть несколько вещей, которые я уже пробовал:
- Использование
*ngIf
для ручного управленияудалите таблицу перед закрытием панели mat-dialog
1020 * - . С помощью
hotinstance.destroy()
перед закрытием панели mat-dialog
Оба решения позволяют мне перемещаться или закрывать mat-dialog
панель не застряла, но я думаю, что onChange
слушатель экземпляра таблицы выдает ошибку следующим образом:
PreviewSheetComponent.html:9 ERROR Error: The "updateSettings" method cannot be called because this Handsontable instance has been destroyed
at Core.updateSettings (core.js:3691)
at handsontable-angular.js:251
at ZoneDelegate.invoke (zone.js:396)
at Zone.run (zone.js:153)
at NgZone.push../node_modules/@angular/core/fesm5/core.js.NgZone.runOutsideAngular (core.js:26214)
at HotTableComponent.push../node_modules/@handsontable/angular/fesm5/handsontable-angular.js.HotTableComponent.updateHotTable (handsontable-angular.js:247)
at HotTableComponent.push../node_modules/@handsontable/angular/fesm5/handsontable-angular.js.HotTableComponent.onAfterColumnsNumberChange (handsontable-angular.js:301)
at HotTableComponent.push../node_modules/@handsontable/angular/fesm5/handsontable-angular.js.HotTableComponent.removeColumn (handsontable-angular.js:327)
at HotColumnComponent.push../node_modules/@handsontable/angular/fesm5/handsontable-angular.js.HotColumnComponent.ngOnDestroy (handsontable-angular.js:669)
at callProviderLifecycles (core.js:21419)
Это, в свою очередь, приводит к сбою всего приложения.
Мне действительно нужна помощь с этим.