在 ag-grid 的 gridOptions 中使用变量 Angular 2

Use variables in gridOptions in ag-grid for Angular 2

我正在 Angular 2 应用程序中开发 table。我正在使用农业网格。这是我的 gridOptions

        this.gridOptions = <GridOptions>{

        onGridReady: (() => {
            this.gridOptions.api.sizeColumnsToFit();
            this.gridOptions.onFilterModified = function () {
                console.log("Value Changed")
            }
        })
    }

这段代码工作正常。如果我更改搜索字段中的值,我将在控制台中获得文本 "Value Changed"。我想在 OnFilterModified 函数中使用在该函数外部定义的变量,但它不起作用。

console.log(this.) 我只得到 onGridReady 函数。而已。如何在 OnFilterModified 函数中访问其他 functions/variables?

这不是一个真正的农业网格或 angular 2 问题,而是一个 javascript 范围界定问题。

在函数中(我假设你只是在这里使用 javascript,而不是打字稿)"this" 不是 out 作用域,而是函数,它没有用。

最简单的解决方法是执行以下操作:

    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/ 以便更好地理解这个问题。