Angular - Ag-grid cellRendering 仅在一列上 header
Angular - Ag-grid cellRendering only on one column header
现在我设法呈现所有列的列标题(参见屏幕截图)。
但我的目标是仅对 1 个特定列 应用单元格渲染器 。
我正在使用 Angular 5 和 ag-grid/ag-grid-angular 17.0.0
我的 parent 组件看起来像(为了简单起见,我删掉了不相关的东西):
export class ClanModalComponent implements OnChanges {
@Input() clanInfo: ClansByClantagType;
rowData: ClanMembersType[];
columnDefs;
frameworkComponents;
constructor(private router: Router) {
this.columnDefs = [
{headerName: 'Tag', field: 'tag', width: 120 },
{headerName: 'Name', field: 'name', width: 170 },
{headerName: 'Role', field: 'role', width: 120},
{headerName: 'Level', field: 'expLevel', width: 80},
{headerName: 'Home', field: 'trophies', width: 120},
{headerName: 'Trophies Night', field: 'versusTrophies', width: 120}
];
this.frameworkComponents = { agColumnHeader: TrophiesHomeCellRendererComponent };
ngOnChanges(): void {
if (this.clanInfo) {
this.rowData = this.clanInfo.memberList;
}
}
}
我的 cellRenderer 组件如下所示:
@Component({
selector: 'app-trophy-home',
template: `<img [src]="trophyHomeImg" width="25px" height="auto">`
})
export class TrophiesHomeCellRendererComponent implements AgRendererComponent {
public trophyHomeImg = 'expected/image/path';
agInit() {}
refresh(){
return false;
}
}
我认为您需要使用 ColumnDef
条目的 headerComponentFramework
属性,而不是 frameworkComponents
属性。例如:
...
{
headerName: 'Trophies Night',
field: 'versusTrophies',
width: 120,
headerComponentFramework: TrophiesHomeCellRendererComponent
}
...
您的 TrophiesHomeCellRendererComponent
class 需要实现 IHeaderAngularComp 接口,而不是 AgRendererComponent
接口。
有关详细信息,请参阅此 link:ag-Grid Components
现在我设法呈现所有列的列标题(参见屏幕截图)。 但我的目标是仅对 1 个特定列 应用单元格渲染器 。 我正在使用 Angular 5 和 ag-grid/ag-grid-angular 17.0.0
我的 parent 组件看起来像(为了简单起见,我删掉了不相关的东西):
export class ClanModalComponent implements OnChanges {
@Input() clanInfo: ClansByClantagType;
rowData: ClanMembersType[];
columnDefs;
frameworkComponents;
constructor(private router: Router) {
this.columnDefs = [
{headerName: 'Tag', field: 'tag', width: 120 },
{headerName: 'Name', field: 'name', width: 170 },
{headerName: 'Role', field: 'role', width: 120},
{headerName: 'Level', field: 'expLevel', width: 80},
{headerName: 'Home', field: 'trophies', width: 120},
{headerName: 'Trophies Night', field: 'versusTrophies', width: 120}
];
this.frameworkComponents = { agColumnHeader: TrophiesHomeCellRendererComponent };
ngOnChanges(): void {
if (this.clanInfo) {
this.rowData = this.clanInfo.memberList;
}
}
}
我的 cellRenderer 组件如下所示:
@Component({
selector: 'app-trophy-home',
template: `<img [src]="trophyHomeImg" width="25px" height="auto">`
})
export class TrophiesHomeCellRendererComponent implements AgRendererComponent {
public trophyHomeImg = 'expected/image/path';
agInit() {}
refresh(){
return false;
}
}
我认为您需要使用 ColumnDef
条目的 headerComponentFramework
属性,而不是 frameworkComponents
属性。例如:
...
{
headerName: 'Trophies Night',
field: 'versusTrophies',
width: 120,
headerComponentFramework: TrophiesHomeCellRendererComponent
}
...
您的 TrophiesHomeCellRendererComponent
class 需要实现 IHeaderAngularComp 接口,而不是 AgRendererComponent
接口。
有关详细信息,请参阅此 link:ag-Grid Components