ag-grid - Angular 6 - 在 AG Grid 中添加新行
问题描述
我想在 AG Grid 中添加一个新元素。我有以下模型:
export class PersonModel {
cars: CarModel[];
}
AG Grid 具有rowData
我模型的数组 Cars。但是这个数组是不可观察的。现在我想在单击按钮时添加一辆新车:
<button type="button" (click)="onClickCreateCar()">
在我的视图模型中:
onClickCreateCar() {
var emptyCar = new CarModel();
this.person.cars.push(emptyCar);
}
我看不到网格中的新行,因为数组 Cars 不可观察。没关系,因为模型的属性不应该是可观察的。你如何解决这个问题?
我的 AG-Grid 定义:
<ag-grid-angular class="ag-theme-fresh" *ngIf="person" style="height: 100%; width: 100%;" [gridOptions]="gridOptions" [rowData]="person.cars" [columnDefs]="columnDefs">
解决方案
对于插入新行,ag-grid
您不应该rowData
直接使用它将创建\覆盖现有对象并且所有状态都将被重置,无论如何,有一种方法setRowData(rows)
但我建议使用updateRowData(transaction)
:
updateRowData(transaction)
将行数据更新到网格中。传递带有添加、删除和更新列表的事务对象。
gridApi.updateRowData({add: newRows});
推荐阅读
- xcode - 如何在控制台中修复错误消息“无法从模块'(null)'加载自定义类'GameScene'”Xcode
- php - web 开发中的 nodeJS 与 PHP
- javascript - 通过使用 postMessage() 访问跨域框架绕过具有源的阻塞框架
- regex - 如何在 Python3.7 中使用正则表达式查找 Unicode 模式?
- javascript - Django CreateView 未在提交表单时创建
- swift - 如何在基本类型和相关类型相同的 Vapor 3 中的 Fluent 模型上声明 Siblings 扩展?
- c++ - 为什么我的 for 循环没有在函数中递增?
- ios - 如何在 UITableView 单元格选择中获取哪个元素接收选择?
- javascript - 如何跳过csv中的标题并解析列?
- sqlite - 如何用红色连接到 sqlite3