我有一个带有两列的ag-Grid:一个ID列和一个Description列。 我在TypeScript类的ngOnInit()方法中的columnDefs中构造了这两列的列定义。
在“描述”列中,我使用cellRendererFramework在我的ag-Grid中呈现一个routerLink。 我使用cellRendererParams将一些必要的参数传递给我的Angular渲染器组件。 我需要在Description列中访问ID列的ID值,并将其放入cellRendererParams参数'resourceId'中。 我需要此ID才能构建我的工作RouterLink。
如何在下面的代码中做到这一点?
ngOnInit() {
this.columnDefs = [
// Column A - ID
{
headerName: 'ID',
field: 'id',
width: 80,
sort: 'desc'
},
// Column B - Description
{
headerName: 'Description',
field: 'description',
width: 150,
cellRendererFramework: AgGridRouterLinkRendererComponent,
cellRendererParams: {
resourcePath: '/leverance/detail',
resourceId: HERE-I-WOULD-LIKE-TO-ACCESS-THE-ID-VALUE-OF-THE-ID-FIELD-IN-THE-ID-COLUMN-ABOVE
}
];
}
答案 0 :(得分:0)
我在columnDefs的ngOnInit()中找不到访问Id值的方法。 相反,我可以在AgRendererComponent的agInit()方法中获取它。
agInit(params: any): void { this.resourceId = params.data.id; }
ag-grid-router-link-renderer.component.ts
import { Component } from '@angular/core';
import { AgRendererComponent } from 'ag-grid-angular';
@Component({
template: `
<a [routerLink]="[params.resourcePath, resourceId]">{{
params.value
}}</a>
`
})
export class AgGridRouterLinkRendererComponent implements AgRendererComponent {
params: any;
resourceId: number;
agInit(params: any): void {
this.params = params;
this.resourceId = params.data.id;
}
refresh(params: any): boolean {
return false;
}
}
答案 1 :(得分:0)
我将这样定义B列:
// Column B - Description
{
headerName: 'Description',
field: 'description',
width: 150,
cellRendererFramework: AgGridRouterLinkRendererComponent,
cellRendererParams(params) {
return {
resourcePath: '/leverance/detail',
resourceId: params.data.id
}
}
}
这样,您可以获取其他列中的任何字段。