显示多列数据的 ag-grid 单元渲染器

ag-grid cell renderer that shows data from multiple columns

我正在尝试创建一个将从其他列获取数据的单元格渲染器。

例如,每一行表示一些数据,用户应该能够根据他们的权限打开它,并且受限数据应该与非受限元素呈现不同的方式。其他列也会影响呈现这一列。

我希望能够使用路径 this.params.node.data.restricted 访问其他列的数据,这在点击事件期间有效,但我似乎无法在呈现期间访问这些数据组件的相位。

"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 视为一个选项,但它会将整行呈现为一列。

我认为您可以使用 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"
    }
 ]
}

Documentation

如果您仍在寻找答案,可以使用 rowNode.columnApi.resetColumnState()