angular - 显示多列数据的 ag-grid 单元格渲染器
问题描述
我正在尝试创建一个将从其他列获取数据的单元格渲染器。
例如,每一行表示一些数据,用户应该能够根据他们的权限打开它,并且受限制的数据应该与不受限制的元素呈现不同的方式。其他列也会对渲染这一列产生影响。
我希望能够使用 path 访问其他列的数据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;
}
}
我认为理想情况下,我想做的是设置将传递到我的渲染器的列,并以某种方式在组件中作为参数访问它们。这是可能的还是我们有其他的解决方法?我将全宽行视为一个选项,但这会将整行呈现为一列。
解决方案
我认为您可以使用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"
}
]
}
推荐阅读
- vba - 我需要帮助在 word 中的两个标题之间复制内容 - vba
- c# - 在 BAPI 中设置表参数失败
- vue.js - Vuelidate、v-for 和子组件化
- c++ - 如何使用另一个模板化类的实例来模板化一个类?
- amazon-web-services - 假设已设置权限,我能否从我的 AWS 账户为不同的 AWS 账户创建 Athena 表?
- angular - 如何通过剑道网格角度分组进行服务器端分页?
- powershell - PowerShell 中的 wlanapi.dll。禁用后台扫描
- javascript - Google Apps 脚本 - 从电子表格创建日历事件
- c - 启动线程使主线程超时,但允许主线程暂停计时器
- java - 如何为自定义 Quarkus ConfigProperties 使用配置映射