angular - 我可以使用 cellRendererSelector 为每一行提供自己的 cellRenderer
问题描述
我正在尝试解决此问题:
您能否为 ag-grid Angular 中的不同行指定不同的 customCellRenderer
在ag-grid的文档中,我发现了一些可能有帮助的东西;在Many Renderers One Column部分下,他们展示了与我的需求有点相似的东西(请参阅plunker 项目)。
在这个特定的部分:
cellRendererSelector: function(params) {
var moodDetails = {
component: 'moodCellRenderer'
};
var genderDetails = {
component: 'genderCellRenderer',
params: {
values: ['Male', 'Female']
}
};
if (params.data.type === 'gender')
return genderDetails;
else if (params.data.type === 'mood')
return moodDetails;
else
return null;
}
在他们的示例中,他们根据在同一行的另一列中选择的值呈现单元格。
直觉上,我尝试了以下方法:
if (params.node.id === 1)
return genderDetails;
else if (params.node.id === 5)
return moodDetails;
else
return null;
我认为这应该有效,但它没有:
知道为什么这不起作用吗?
解决方案
你几乎明白了!
代码的唯一问题是node.id
s 是 type string
,而您尝试将它们与number
s 进行比较。
要修复它,请更新cellRendererSelector
条件以测试字符串:
if (params.node.id === '1')
return genderDetails;
else if (params.node.id === '5')
return moodDetails;
else
return null;
请注意,宽松的比较也可以:
if (params.node.id == 1)
// and so on...
…因为在比较之前数字将被强制转换为字符串。不过,我建议不要这样做,当您忘记为什么将==
其放在首位时,它可能会成为一个陷阱:)
推荐阅读
- tcl - 从 TCL 中的文本文件中获取单列矩阵
- spring-data-jpa - Hikari Pool 不使用空闲连接并创建新连接
- leading-zero - 如何在 MS Access 中以零开头的文本字符串的开头添加单引号
- segmentation-fault - 如何让子进程自己处理SIGSEGV
- java - 如何使用 android studio 从谷歌地图 api 的地图中显示位置
- java - 访问画廊目录
- database - 关系数据库:以不同的解释重用同一张表
- excel - 如何在 Excel 宏中使用选定单元格的内容?
- r - R-根据几个值聚合行,但仅对某些列应用求和函数
- c# - 如何使用 LINQ 获取 SOAP xml 文件数据并将其显示在表单的文本框中?C#