我正在Angular 2应用程序中的一个表上工作。我正在使用ag-grid。这是我的 gridOptions
this.gridOptions = <GridOptions>{
onGridReady: (() => {
this.gridOptions.api.sizeColumnsToFit();
this.gridOptions.onFilterModified = function () {
console.log("Value Changed")
}
})
}
此代码工作正常。如果我更改搜索字段中的值,我将在控制台中获得文本“Value Changed”。我想在 OnFilterModified 函数中使用一个变量,该函数在该函数之外定义,但它不起作用。
console.log(此。)点后我只获得 onGridReady 功能。而已。如何访问 OnFilterModified 函数中的其他函数/变量?
答案 0 :(得分:1)
这不是一个ag-grid或者有角度的问题,而是一个javascript范围的问题。
在函数中(我假设你只是在这里使用javascript,而不是打字稿)&#34;这个&#34;不是范围,而是功能,它们并不有用。
最简单的解决方法是执行以下操作:
var that = this;
this.gridOptions = <GridOptions>{
onGridReady: (() => {
that.gridOptions.api.sizeColumnsToFit();
that.gridOptions.onFilterModified = function () {
console.log(that.gridOptions)
console.log("Value Changed")
}
})
};
我查看了这篇文章(有很多关于此主题的文章),以获取有关JavaScript范围的更多信息:http://ryanmorr.com/understanding-scope-and-context-in-javascript/以便更好地理解该问题。