ag-grid cell-renderer рендерит заданный пользовательский компонент рендеринга в самой ячейке Таким образом, вы не сможете визуализировать его как поповер, так как он визуализируется внутри ячейки.
Поэтому вы можете написать собственный компонент редактора ячеек и привязать его к вашей ячейке, который затем отобразит информацию за пределами ячейки.
Пример кода
grid.component.html
<ag-grid-angular #agGrid style="width: 100%; height: 500px;" class="ag-theme-balham" [gridOptions]="gridOptions"
(gridReady)="onGridReady($event)">
</ag-grid-angular>
grid.component.ts
GridOptions и фиктивные данные устанавливаются через это.
import { Component, OnInit } from '@angular/core';
import { GridOptions } from 'ag-grid-community';
import { OptionsCellRendererComponent } from './options-cell-renderer/options-cell-renderer.component';
@Component({
selector: 'app-grid',
templateUrl: './grid.component.html'
})
export class GridComponent implements OnInit {
gridOptions: GridOptions;
constructor() { }
ngOnInit() {
this.gridOptions = {
} as GridOptions;
}
onGridReady(params) {
this.setData();
}
setData() {
this.gridOptions.api.setColumnDefs(this.getColumnDefinitions());
this.gridOptions.api.setRowData(this.getData());
}
getColumnDefinitions(): any {
return [
{
field: 'option',
headerName: 'Option',
cellRendererFramework: OptionsCellRendererComponent
},
{
field: 'year',
headerName: 'Year'
},
]
}
getData(): any {
return [
{
option: '1',
year: 1990
},
{
option: null,
year: 1991
}
];
}
}
варианты клеточно renderer.component.html
Отображение значка отклонения или утверждения на основе значения параметра
<ng-template #approvePopup>
This is a simple popover
</ng-template>
<img style="height: 20px; width:20px;" *ngIf="!isValid()" src="../../../assets/images/1.png" [ngbPopover]="approvePopup"
placement="auto" triggers="mouseenter:mouseleave" />
<img style="height: 20px; width:20px;" *ngIf="isValid()" src="../../../assets/images/2.png" [ngbPopover]="approvePopup"
placement="auto" triggers="mouseenter:mouseleave" />
варианты клеточно-renderer.component.ts
Проверка правильности значения параметра
import { Component } from '@angular/core';
import { ICellRendererAngularComp } from 'ag-grid-angular';
@Component({
selector: 'app-options-cell-renderer',
templateUrl: './options-cell-renderer.component.html',
styleUrls: ['./options-cell-renderer.component.css']
})
export class OptionsCellRendererComponent implements ICellRendererAngularComp {
public params: any;
option: string;
agInit(params: any): void {
this.params = params;
}
isValid(): boolean {
return this.params.value !== undefined && this.params.value !== null;
}
refresh(): boolean {
return false;
}
constructor() { }
}
Вот так это будет выглядеть