簡體   English   中英

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

[英]Use variables in gridOptions in ag-grid for Angular 2

我正在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(this。)我只能得到onGridReady函數。 而已。 如何在OnFilterModified函數中訪問其他函數/變量?

這實際上不是ag-grid或angular 2問題,而是JavaScript范圍界定的問題。

在函數中(我假設您只是在這里使用javascript,而不是打字稿),“ this”不是超出范圍,而是函數,沒有用。

最簡單的解決方法是執行以下操作:

    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/以更好地理解這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM