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

时间:2016-11-21 11:15:47

标签: javascript variables angular filter ag-grid

我正在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 函数中的其他函数/变量?

1 个答案:

答案 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/以便更好地理解该问题。