Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 在ag网格中,如何获取动态标头名称?_Angular_Typescript_Ag Grid_Ag Grid Angular - Fatal编程技术网

Angular 在ag网格中,如何获取动态标头名称?

Angular 在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

我使用的是带角度的ag网格。我希望其中一个列名是动态的。所以在该列的colDefs对象中,我没有定义headerName,而是定义了headerValueGetter

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',
    }
];

谢谢,你的回答是正确的&这显然对我有帮助。我只能接受一个正确答案,因此接受了另一个答案,以便更详细地解释。