如何在 ag-Grid Angular 设置中访问 columnDefs 中另一列的值?
How to access the value of another column in the columnDefs in an ag-Grid Angular setup?
我有一个包含两列的 ag-Grid:一个 ID 列和一个描述列。
我在TypeScript class.
的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
}
];
}
我没有找到在 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;
}
}
我会这样定义 B 列:
// Column B - Description
{
headerName: 'Description',
field: 'description',
width: 150,
cellRendererFramework: AgGridRouterLinkRendererComponent,
cellRendererParams(params) {
return {
resourcePath: '/leverance/detail',
resourceId: params.data.id
}
}
}
这样你就可以得到其他列中的任何字段。
我有一个包含两列的 ag-Grid:一个 ID 列和一个描述列。 我在TypeScript class.
的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
}
];
}
我没有找到在 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;
}
}
我会这样定义 B 列:
// Column B - Description
{
headerName: 'Description',
field: 'description',
width: 150,
cellRendererFramework: AgGridRouterLinkRendererComponent,
cellRendererParams(params) {
return {
resourcePath: '/leverance/detail',
resourceId: params.data.id
}
}
}
这样你就可以得到其他列中的任何字段。