2017-08-02 3 views
1

私は角度2のag-gridを使用しています。カスタムコンテキストメニューによる更新と削除

私は、削除ボタンと更新ボタンを持つカスタムコンテキストメニューを作成しました。 シナリオでは、ユーザーは1つまたは複数の行を選択し、右クリックして「削除」または「更新」ボタンをクリックします。

これらのボタンは、選択した行を取得するためにgridOptionsで処理する関数を呼び出します。

ただし、削除または更新ボタンをクリックすると、this.gripOptionsが定義されていないというエラーが表示されます。

これに関するサンプルまたはドキュメントはありますか? どうすればこの問題を解決できますか?返信用

おかげ

var gridOptions = { 
     columnDefs: columnDefs, 
     enableRangeSelection: true, 
     getContextMenuItems: getContextMenuItems, 
     allowContextMenuWithControlKey: true 
    }; 
    getContextMenuItems(params) { 
     var result = [ 
      { // custom item 
       name: 'Delete', 
       action: function() { this.delete()); } 
      } 

    return result; 
    } 

    delete() { 
     var selectedRows = this.gridOptions.api.getSelectedRows(); 
    } 
+0

デバッグに役立つコードスニペットを追加できますか、一般的なソースを探していますか? – Surreal

+0

もちろん、私はコードを追加することができます。それはAGグリッドの一般的な問題だと思われます。私が理解する限り、カスタムコンテキストメニューは準備されており、他の外部コードと接触することはできません。私は.tsで定義した変数を使用しようとしましたが、もう一度、エラーはその変数が定義されていないと言います。 –

答えて

0

あなたが変数としてではなく、本の一部としてgridOptionsを宣言したためです。あなたにできることは次のとおりです。

var vm = this; 
vm.gridOptions={...} 

[...]あなたは「この」に関係していない。このように

delete() { 
    var selectedRows = vm.gridOptions.api.getSelectedRows(); 
} 

が、それはJavascriptで管理するのは難しいですが、あなたが持っている

ローカルコンテキストへの特定の参照

+0

答えに感謝します! 私はこの答えで私の問題を解決しました。 https://stackoverflow.com/a/45374506/7826844 しかし、あなたの答えも正しいです! –

関連する問題