2017-11-14 8 views
1

Dojoフレームワークの使用。Dojoから宣言クラスへの参照を取得する方法gridx detailProvider(Dodモジュール)

私は2つのネストされたグリッドを持っています。グリッド1は、拡張アイコンをクリックしたときに、detailproviderを持つDodを使用してオンデマンドで詳細をロードします。これを押すと、ネストされたグリッドが開きます。両方のグリッドで行った変更を追跡する必要があります。宣言クラスでは、変更を追跡する配列があります。問題は、私がdetailproviderから配列にアクセスできないことです。私は後でgridxが呼び出すプロトコルに従わなければならないからです。私は宣言クラスへの参照を取得するために何ができる

var myDeclaringClass = declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin], { 
    array: [], 

    initGrid: function(){ 
     var grid = new Grid({ 
      store: store, 
      structure: columns, 
      modules: [ { 
        moduleClass: Dod, 
        showExpando: true, 
        detailProvider: this.myDetailProvider 
      }] 
     }); 

     // .... grid.placeAt() .. grid.startup() 
    }, 

    myDetailProvider: function(parentGrid, rowId, detailNode, rendered) { 
     // construct Nested Grid ... 

     // How to obtain this reference here? 
     // to access this.array? 

     rendered.callback(); 
     return rendered; 
    } 
    retrun myDeclaring; 
} 

EDIT: 私ものような静的VARで試してみました:

statics: { array: [] } 

しかし、ここで私はスティルアクセスするインスタンスの参照が必要になりますそれ。

答えて

1

"には、VaRのglobalref =この" この

var myDeclaringClass = declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin], { 
     array: [], 
var globalref : this,//here i'm assigning 'this' i.e. class level ref to the variable 

     initGrid: function(){ 
      var grid = new Grid({ 
       store: store, 
       structure: columns, 
       modules: [ { 
         moduleClass: Dod, 
         showExpando: true, 
         detailProvider: this.myDetailProvider 
       }] 
      }); 

      // .... grid.placeAt() .. grid.startup() 
     }, 

     myDetailProvider: function(parentGrid, rowId, detailNode, rendered) { 
      // construct Nested Grid ... 

      // How to obtain this reference here? 
      // to access this.array? 
    globalref.array//should give you access to the array 
      rendered.callback(); 
      return rendered; 
     } 
     retrun myDeclaring; 
    } 
+0

のようなものではありませんvaild構文を試してみてください。動作しません? – Mat0

+0

ああ!はい、あなたは正しいです...私は答えを更新します... –

関連する問題