【发布时间】:2021-03-25 12:15:33
【问题描述】:
我在 vue.js 中使用 cellrenderer,我想从单元格渲染器中调用函数。
附上我的代码:
gridColumns() {
return [{
headerName: "Actions",
cellRenderer: 'iconRender',
width: 140,
cellRendererParams: (params) => {
return {
icon: ['edit', 'delete_forever'],
color: 'gray'
}
}
},
{
headerName: "Name",
field: "name"
},
{
headerName: "Artiyfactory Name",
field: "artifactoryName"
},
{
headerName: "Artifact Type",
field: "artifactType"
},
{
headerName: "Deployment Action",
field: "deploymentAction"
},
{
headerName: "Location",
field: "usage.location"
},
{
headerName: "Destenition On Setup",
field: "usage.destOnSetup"
},
]
}
},
function iconRender(params) {
var spanElement = document.createElement("span");
var textElement = document.createElement("span");
if (params.value != undefined) {
textElement.innerHTML = " " + params.value;
textElement.style.verticalAlign = "middle";
}
params.icon.forEach(element => {
var iconElement = document.createElement("i");
iconElement.className = "material-icons";
iconElement.style.color = params.color;
iconElement.style.verticalAlign = "middle";
iconElement.innerHTML = element;
spanElement.appendChild(iconElement);
});
spanElement.appendChild(textElement);
return spanElement;
}
我想从图标元素调用一个函数,我尝试了几种方法,但对我没有任何作用。
你能看一下并告诉我该怎么做吗?
谢谢你:)
【问题讨论】:
-
在声明 ColDef 时,您可能幸运地将函数绑定到属性,如下所示:
{cellRenderer: this.iconRender.bind(this)} -
谢谢!,你能告诉我我应该在 iconRender 中写什么以便调用 myfunc() 吗?
-
当您将列定义传递给 ag-grid 实例时,它会将您的函数绑定到该列的
cellrenderer属性。因此,当它在其构建生命周期中检查cellRenderer的值时,它会看到您的函数并随后触发它。 -
但我不明白如何调用该函数,我想在单击图标时调用 som 函数
-
ah - 那么你需要附加一个点击处理程序。 GridOptions 有一个“onCellClicked”属性,您将在那里分配一个函数。
标签: vue.js ag-grid cellrenderer