Angular 在ag网格中,如何获取动态标头名称?
我使用的是带角度的ag网格。我希望其中一个列名是动态的。所以在该列的colDefs对象中,我没有定义headerName,而是定义了headerValueGetterAngular 在ag网格中,如何获取动态标头名称?,angular,typescript,ag-grid,ag-grid-angular,Angular,Typescript,Ag Grid,Ag Grid Angular,我使用的是带角度的ag网格。我希望其中一个列名是动态的。所以在该列的colDefs对象中,我没有定义headerName,而是定义了headerValueGetter headerValueGetter: this.partnerHeaderValueGetter ' partnerHeaderValueGetter(params) { return 'Select Partner'; } 我不想这样。有两个单选按钮,动态标题的值将取决于选择哪个单选按钮。但是函数partnerHead
headerValueGetter: this.partnerHeaderValueGetter
'
partnerHeaderValueGetter(params) {
return 'Select Partner';
}
我不想这样。有两个单选按钮,动态标题的值将取决于选择哪个单选按钮。但是函数partnerHeaderValueGetter的参数是具有gridApi、columnApi等的params。如何使该函数知道不属于ag grid的单选按钮?
我想使用的代码如下:
partnerHeaderValueGetter(params) {
if (this.selectedSurveyLevel == 'Partner'){
return 'Select Partners';
}
else if (this.selectedSurveyLevel == 'Site'){
return 'Select Sites';
}
return 'Select Partners';
}
但是函数partnerHeaderValueGetter无法访问“this”,它未定义。请尝试改用arrow函数。很可能您引用了错误的
此
- 如果您使用ES5函数(如您的问题中所述),
将绑定到调用方上下文此
- 如果使用箭头函数,
将绑定到包含箭头函数的代码此
partnerHeaderValueGetter=(参数)=>{
如果(this.selectedSurveyLevel=='Partner'){
返回“选择合作伙伴”;
}
else if(this.selectedSurveyLevel=='Site'){
返回“选择站点”;
}
返回“选择合作伙伴”;
}
一种简单的方法是使用箭头函数而不是普通函数:
someValueInComponent: string;
columnDef = [
{
headerValueGetter: (params) => this.someValueInComponent + ' some logic',
}
];
谢谢,你的回答是正确的&这显然对我有帮助。我只能接受一个正确答案,因此接受了另一个答案,以便更详细地解释。