我目前正在尝试在agGrid标头中添加一个角度指令。为此,我在headerCellRenderer中传递了一个函数,如下所示:
我的gridOptions:
this.columnDefs = [
{headerName: "Height", field: "rowHeight"},
{headerName: "Athlete", field: "athlete", width: 180},
{headerName: "Age", field: "age", width: 90},
{headerName: "Country", field: "country", width: 120},
{headerName: "Year", field: "year", width: 90}
];
this.gridOptions = {
columnDefs: this.columnDefs,
rowData: null,
//enableSorting: true,
headerHeight: 60,
//enableFilter: true,
enableColResize: true,
angularCompileRows:true,
angularCompileHeaders: true,
headerCellRenderer: (params) =>
{return this.headerCellRendererFunc(params);},
rowSelection: 'multiple',
};
我的功能定义如下:
headerCellRendererFunc(params) {
const headerColDef = params.colDef;
headerColDef.name = headerColDef.headerName;
headerColDef.isMetadata = false;
return '<header column="headerColDef"></header>';
}
结果我的指令被渲染,但“列”绑定是空的,我不明白我如何将对象传递给我的指令。
有什么想法吗? 谢谢!
答案 0 :(得分:2)
如果这可以帮助任何人,我只是理解了我的错误:params参数有一个范围,那是传递给指令的那个,所以我所要做的就是在范围内传递我的对象让它工作!
params.$scope.column = headerColDef;
html看起来像这样:
return '<header column="column"></header>';
答案 1 :(得分:0)
设置ag-grid gridOptions属性angularCompileHeaders: true
(默认为false)
试试吧!这对我有用。
价:https://www.ag-grid.com/javascript-grid-properties/index.php