为什么我不能访问函数?农业网格 Angular 2
Why Can't I acces to function ? ag-grid Angular2
我在 detailCellRendererParams,我正在尝试将函数 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>' );
}
};
根据问题,您的代码似乎以错误的格式编写,应该是这样的 -
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;
}
}
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);
使用箭头函数定义 template
,如下代码所示。
template: (params) => {
let number = 1;
number = this.checkNumber(number);
return ('<p>' + number + '</p>');
}
您无法在 template
函数中获取 checkNumber
的原因是它无法获取相同的范围。当你像上面那样使用arrow function
时,它就可以得到它。
我在 detailCellRendererParams,我正在尝试将函数 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>' );
}
};
根据问题,您的代码似乎以错误的格式编写,应该是这样的 -
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;
}
}
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);
使用箭头函数定义 template
,如下代码所示。
template: (params) => {
let number = 1;
number = this.checkNumber(number);
return ('<p>' + number + '</p>');
}
您无法在 template
函数中获取 checkNumber
的原因是它无法获取相同的范围。当你像上面那样使用arrow function
时,它就可以得到它。