В моей работе у них есть эта ag-grid в angular, и с помощью средства визуализации ячеек они создают кнопку для каждой строки, но после определенного условия они хотят, чтобы я отключил кнопку, но я понятия не имею, как сделать это
grid.ts
this.frameworkComponents = {
buttonRenderer: BtnRendererComponent,
viewButtonRenderer: BtnViewRendererComponent
};
this.submissionCols = [
{
headerName: 'Process', field: 'id', filter: true, sortable: true, width: 100, cellClass: 'grid-cell-centered',
cellRenderer: 'viewButtonRenderer', hide: !this.hide,
onCellClicked: this.onBtnClick.bind(this),
},
{
headerName: this.hide ? 'Request Status' : 'Review Status', width: 150,
field: 'reviewStatus',
filter: true,
sortable: true
},
{
headerName: 'Review Type',
field: 'reviewType',
filter: true,
sortable: true
},
{
headerName: 'Reviewer',
field: 'reviewer',
filter: true,
sortable: true
},
{
headerName: 'Request Type',
field: 'reviewRequestItem',
filter: true,
sortable: true,
hide: !this.hide
},
{
headerName: 'In Reference To',
field: 'reference',
filter: true,
sortable: true,
hide: !this.hide
},
{
headerName: 'Request Item',
field: 'reviewRequestItem',
filter: true,
sortable: true,
hide: this.hide
},
{
headerName: 'Description',
field: 'description',
filter: true,
sortable: true
},
{
headerName: 'Responded',
field: 'responded',
filter: true,
sortable: true,
cellRenderer: (data) => {
if (data.data.responded != null) {
return moment(data.data.responded).format('MM/DD/YYYY');
}
}
}
];
}
вот мой класс для viewButtonRenderer:
export class BtnViewRendererComponent implements ICellRendererAngularComp {
params;
label: string;
colored: string;
textColored: string;
icon: string;
agInit(params): void {
this.params = params;
this.label = this.params.data.id || null;
this.colored = "red";
if (params.column.colDef.headerName === "View") {
this.icon = "details";
} else {
this.icon = "note";
}
}
refresh(params?: any): boolean {
return true;
}
onClick($event) {
if (this.params.onClick instanceof Function) {
// put anything into params u want pass into parents component
const params = {
event: $event,
rowData: this.params.node.data
// ...something
};
this.params.onClick(params);
}
}
}
Я новичок в ag-grid и действительно могу использовать рука.