2016-11-21 12 views
1

私はAngular 2アプリケーションのテーブルで作業しています。私はag-gridを使用しています。これは私のgridOptions角度2のグリッドでgridOptionsの変数を使用する

 this.gridOptions = <GridOptions>{ 

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

このコードは正常に動作しています。検索フィールドの値を変更すると、コンソールに "Value Changed"というテキストが表示されます。私はその関数の外で定義されているOnFilterModified関数内の変数を使用したいが、機能しません。

はconsole.log(これ。)ドットの後に私はonGridReady機能を取得します。それでおしまい。 OnFilter Modified関数内の他の関数/変数にアクセスするにはどうすればよいですか?

答えて

1

これは本当にag-gridまたはangular 2 quesionではなく、javascriptのスコープです。

この関数では(と私はここではJavaScriptを使用していますが、typescriptではなく) "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/を問題。

+0

これはうまくいきました。 – user2959870

関連する問題