我正在尝试创建一个单元格渲染器,该渲染器将从其他列中获取数据。
例如,每一行表示某些数据,用户应能够根据其权限打开它,并且受限数据的呈现方式应与非受限元素的呈现方式不同。其他列也会影响这一列的显示。
我希望能够使用路径this.params.node.data.restricted
访问其他列的数据,并且这在click事件期间有效,但是在渲染的呈现阶段,我似乎无法访问此数据。组件。
"columnDefs": [
{
"field": "id",
"width": 40,
"checkboxSelection": true
},
{
"headerName": "Title",
"field": "docTitle",
"width": 1580,
"cellRenderer": "detailViewRenderer"
}
]
import {Component} from "@angular/core";
import {ICellRendererAngularComp} from "ag-grid-angular";
@Component({
selector: 'detail-view-renderer',
styles: [``],
template: `
<a class="restricted" *ngIf="params.node.data.restricted">{{params.value}}</a>
<a class="not-restricted" *ngIf="!params.node.data.restricted">{{params.value}}</a>
`
})
export class DetailViewRendererComponent implements ICellRendererAngularComp {
public params: any;
agInit(params: any): void {
this.params = params;
}
constructor() {}
refresh(): boolean {
return false;
}
}
我认为理想情况下,我想做的是设置将传递到渲染器中的列,并以某种方式在组件中访问它们作为参数。有可能吗?还是有其他解决方法?我看到Full Width Rows是一个选择,但这会将整个行呈现为一列。
答案 0 :(得分:1)
我认为您可以使用params.data.restricted
而不是params.node.data.restricted
来访问其他行属性。
例如
method() {
const detailViewRenderer = params => {
return `<span>${params.data.restricted}</span>`;
};
this.columnDefs: [
{
"field": "id",
"width": 40,
"checkboxSelection": true
},
{
"headerName": "Title",
"field": "docTitle",
"width": 1580,
"cellRenderer": "detailViewRenderer"
}
]
}
答案 1 :(得分:-1)
如果您仍在寻找答案,则可以使用rowNode.columnApi.resetColumnState()