[英]Update State of React Component from ag-grid Custom Renderer
[英]Angular ag-Grid: how to refresh param value in custom cell renderer that is passed from the parent component?
我有用于编辑菜单的自定义单元格渲染器:
我将isEditing
值传递给渲染器组件,因为当用户单击编辑时,然后
agInit(params: ICellRendererParams) {
this.params = params;
this.data = params.data;
this.isEditing = this.params.isEditing;
}
在模板中:
<ng-container *ngIf="!isEditing">
HERE IS MENU ICON VIEW
</ng-container>
<div *ngIf="isEditing" class="d-flex justify-content-center align-items-center">
<button type="button" class="btn btn-primary m-1" (click)="onSave()">{{'shared.save' | translate}}
</button>
<button type="button" class="btn btn-secondary m-1" (click)="onCancel()">{{'shared.cancel' | translate}}</button>
</div>
在我的父组件中,网格在哪里,我有我的列定义:
headerName: '',
cellRendererFramework: EditRendererComponent,
cellRendererParams: {
isEditing: this.isEditing
}
问题是我想从父级别管理isEditing
标志。 但是当我开始行版 onClick 然后(rowEditingStarted)
被触发并且我正在更改标志:
{
this.isEditing = true;
this.gridApi.refreshCells({force: true});
}
如您所见,我尝试使用refreshingCells
中的 refreshCells 方法,但它对我没有帮助。 也许你们有一些想法来处理这个?
我尝试使用与您实现的方法类似的方法,但无法使其正常工作。 价值没有改变。 相反......我使用了我在自定义渲染器中订阅的服务。 在父组件中,我有一个按钮,用于切换“isEditing”变量并更新可观察对象中的值。
父组件
this._TableRendererService.updateIsEdit(this.isEdit);
自定义渲染器
agInit(params: any) {
this.params = params;
this._TableRendererService.currentIsEdit.subscribe(isEdit => this.isEdit = isEdit);
}
使单元格参数值为 function ,如下所示:
cellRendererParams: {
isEditing: () => this.isEditing
}
并将其用作 function:
<div *ngIf="isEditing()"></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.