Я пытаюсь обновить mat-table
представление после выполнения операции обновления его данных. Однако представление таблицы обновляется правильно только при первом обновлении. Каждая последующая операция обновления задерживается на 1 действие, например:
- Обновить строку 1 -> ничего не происходит
- Обновить строку 2 -> строка 1 обновляется
- Обновить строку 3 -> строка 2 обновляется
и так далее...
Таблица загружается с помощью службы http.get для получения данных. Операция обновления вызывает службу http.post для сохранения данных, а затем вызывает метод refreshData()
. Обе службы работают по назначению.
Я использую ChangeDetectorRef
для принудительного обнаружения изменений.
Компонент:
dataSource: MatTableDataSource<IRegion> = new MatTableDataSource();
@ViewChild(MatSort) set content(sort: MatSort) {
this.dataSource.sort = sort;
};
constructor(private regionService: RegionService, private changeDetectorRefs: ChangeDetectorRef) {}
ngOnInit() {
this.populateRegions();
}
refreshData(){
this.populateRegions();
}
populateRegions(){
this.regionService.getRegions().subscribe({
next: regions => {
this.dataSource.data = regions;
this.changeDetectorRefs.detectChanges();
}
});
}
Что я здесь делаю не так?
this.dataSource.data = regions
после первого обновления? - person Maihan Nijat   schedule 17.12.2019