I'm trying to call a function in my context menu.
getContextMenuItems(params) {
console.log(params.node.data)
var result = [
{
name: "Delete",
action : function () {
this.deletePriceFactor(params.node.data);
}
,
cssClasses: ["redFont", "bold"]
},
{
name: "Audit"
}
]
return result;
}
deletePriceFactor = (rowdata) =>{
this.priceFactorService.deleteEntry(rowdata.exchangeCode, rowdata.productCode, rowdata.secType).subscribe(pricefactors => {
});
}
I keep getting an error: ERROR TypeError: this.deletePriceFactor is not a function at Object.action (price-factor.component.ts:162)
I have tried using arrow functions like this:
action : () => {
this.deletePriceFactor(params.node.data);
}
The above results in another error: core.js:1673 ERROR TypeError: Cannot read property 'deletePriceFactor' of undefined
if your html is like:
<ag-grid-angular
[getContextMenuItems]="getContextMenuItems"
.
.
.
></ag-grid-angular>
then the function getContextMenuItems
must be writen like :
getContextMenuItems = (params) => {
}
Hence, the this
keyword points to your component.
After that, call your method like:
action : () => this.deletePriceFactor(params.node.data)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With