2017-02-20 17 views
0

私は、Angular 2アプリでag-grid APIをngOnInitメソッド内で使用しています。ag-grid API Angular 2で未定義

like mentioned in this postのonGridReadyイベントでは、APIにアクセスでき、問題なく動作します。

しかし、私は同様に、以下のいずれかの方法でAPIを呼び出す必要があります:

  • をonRowDataChangedはAPIがあるので、これは動作していない

をonModelUpdated

  • をonNewColumnsLoaded未定義。また、何らかの理由で、onCellDoubleClickedイベントとonCellClickedイベントでAPIを呼び出すこともできます。

    これはバグのようです。誰が何が起こっているか知っていますか?

    怒鳴るコードを参照してください。

    ngOnInit() { 
    
        this.gridOptions = <GridOptions>{ 
    
         onGridReady: function (param) { 
          param.api.sizeColumnsToFit(); // works fine 
         }, 
    
         onCellDoubleClicked: function (param) { 
          param.api.sizeColumnsToFit(); // works fine 
         }, 
    
         onRowDataChanged: function (param) { 
          param.api.sizeColumnsToFit(); // API is undefined 
         }, 
        }; 
    } 
    
  • +0

    あなたは私のsolutを見ることができます –

    +0

    いくつかのコード例を提供してください。ここのイオン: http://stackoverflow.com/a/44094147/2372205 – Guenther

    答えて

    0

    さてさて、ここで私が働いて、それを得た方法です。

    • まず、JavaScriptのスコープに関する問題がないことを確認するために、角型コンポーネントのこの参照を取得します。

    • すると、それが利用可能なときに

    setTimeout関数で、すべてのAPI呼び出しを延期、スタックが空になった後にのみAPIを呼び出して、最後onGridReadyイベント内

  • をAPIリファレンスをキャプチャ

    は、だから今のコードは、多かれ少なかれ、次のようになります

    ... 
    let self = this; 
    ... 
    onGridReady: function (param) { 
        self.api = param.api; 
    }, 
    
    onRowDataChanged: function (param) { 
        setTimeout(() => { 
         self.api.sizeColumnsToFit() 
         ...more API calls... 
        }, 0); 
    }, 
    ... 
    
  • 関連する問題