#angular #ag-grid
Вопрос:
Я хочу обновить таблицу, когда я редактирую некоторое значение ячейки определенной строки или когда я добавляю новую строку, она должна быть добавлена в таблицу в режиме реального времени.
Ниже приведен процесс этого.
У меня есть один компонент с именем «основной компонент», в котором у меня есть таблица, созданная путем получения данных из серверной части. Я получаю данные в компоненте фильтра и оттуда передаю их, используя тему RxJS. Я создаю таблицу, как показано ниже:
this.filterData.apiData$.subscribe(data => {
if (data) {
this.searchedData = data;
}
})
createTable()
this.table
.columnData(cols[]) - Currently 6 columns
.rowData(rows[]) - Currently 9 rows
...
Теперь, когда я хочу отредактировать некоторые значения вызова, я открываю одно диалоговое окно с той же таблицей в нем, затем редактирую значения в этом диалоговом окне, и как только я закончу редактирование, я передаю всю строку обратно компоненту (основной компонент), используя тему RxJS. Я получаю массив обновленных данных в своем компоненте, как показано ниже.
this.dialog.editedDataObserver.subscribe((editedData: any[]) => {
if (editedData) {
this.editedDataFromDialog = editedData;
for (let i = 0; i< this.searchedData.length; i ) {
const updatedObject = this.editedDataFromDialog.find(x => x.id === this.searchedData.id);
if (updatedObject) {
this.searchedData[i] = JSON.parse(JSON.stringify(updatedObject));
}
}
}
}
})
Когда я проверяю эти данные, я вижу в своем основном компоненте, что я получаю правильные данные с отредактированными значениями, но когда я передаю эти значения в rowData (), я не могу видеть эти значения в таблице.
Я попытался сделать нижеприведенные действия из переполнения стека, а также из документации ag grid.
1. this.gridAPI.setRowData(this.searchedData)
2. this.gridAPI.refreshCells({force: true});
Может кто-нибудь, пожалуйста, сказать мне, что я делаю не так? Как я могу обновить таблицу отредактированными значениями в соответствующих ячейках?
Я хочу показать значения, которые редактируются перед отправкой на сервер.