我在详细说明CellRendererParams,我正在尝试将函数checkNumber访问到模板中,但是我收到错误Cannot read property 'checkNumber' of undefined
,如果我尝试加入模板,我无法在模板中声明...
this.detailCellRendererParams = {
detailGridOptions: {},
checkNumber(data) {
console.log('into');
if (!Number.isInteger(data.value)) {
return 0;
}
},
template: function(params) {
let number = 1;
number = this.checkNumber(number);
return ( '<p>' + number + '</p>' );
}
};
答案 0 :(得分:1)
根据问题,您的代码似乎以错误的格式编写,它应该是这样的 -
this.detailCellRendererParams = {
detailGridOptions: { },
template: (params) => {
let number = 1;
number = this.checkNumber(number);
return ( '<p>' + number + '</p>' );
}
}
checkNumber(data) {
console.log('into');
if (!Number.isInteger(data.value)) {
return 0;
}
}
答案 1 :(得分:0)
CheckNumber
看起来像效用函数,建议你在其他文件中编写函数并导出它并使其可用作实用函数
export function checkNumber(data) {
console.log('into');
if (!Number.isInteger(data.value)) {
return 0;
}
}
然后直接在您使用ag-grid
的componet.ts文件中导入此函数import { checkNumber} from '@shared/utility-functions';
template: function(params) {
let number = 1;
number = checkNumber(number);
答案 2 :(得分:0)
使用template
定义的箭头功能,如下面的代码所示。
template: (params) => {
let number = 1;
number = this.checkNumber(number);
return ('<p>' + number + '</p>');
}
您无法在checkNumber
函数内获取template
的原因是它无法获得相同的范围。当您使用上述arrow function
时,它将能够获得它。