глобальная кнопка сохранения?не связано с узлом (строкой)
да.правильно
Хорошо, в этом случае вам нужно в качестве примера отследить через Id
, какие данные являются новыми.Итак, предположим, что у вас есть данные unique
идентификатор - который будет представлять ключ Primary
или что-то в этом роде - и этот ключ должен обрабатываться на стороне сервера или базы данных.
Теперь, чтобы получить только «новые» узлы, вы можете фильтровать grid-data
следующим образом:
let newData = [];
this.gridApi.forEachNode(node=>{
if(!node.data.id)
newData.push(node.data)
})
Но я рекомендую избегать нескольких insert
и обрабатывать каждое создание отдельновот так:
handleInsert():void{
let yourDataModel = {
...
}
this.sampleApiService.sampleRequest(dataModel).subscribe(result => {
this.gridApi.updateRowData({add:[result], addIndex:0});
})
}
result
- должен вернуть измененный dataModel
с уже определенным Id
В этом случае вы сможете обновить grid-data
и быть увереннымэти данные верны и уже вставлены в ваш storage
.
Обновленный добавленный пример для обновления
Вместо события (cellEditingStopped)
вы также можете использовать valueSetter
для отслеживания обновлений ячейки
handleUpdateValue(params: ValueSetterParams){
// see if values are different if you have a complex object,
// it would be more complicated to do this.
if (params.oldValue!==params.newValue) {
// params.colDef.field - updated cell ID
... handle update logic here - call API and so on ...
// get grid to refresh the cell
return true;
} else {
// no change, so no refresh needed
return false;
}
}