2016-04-07 15 views
1

Merhaba, aşağıdaki koddan bir hata alıyorum ve neden olduğunu düşündüğümden emin değilim. Rapora karmaşıklık eklemeden önce kodumun düzgün çalıştığından emin olmak istiyorum.Özel HTML - Ralli TreeGrid

bunun için yeni böylece herhangi bir yardım büyük takdir değilim ": Ertelenmiş Ertelenmiş dönüştürülmüş sonucunun Ertelendi dönüştürülmüş sonucu için başarı geri arama attı: ReferenceError myGrid tanımlanmadı Hata"

launch: function() { 
    this._createGrid(); 
}, 

_createGrid: function() { 
    Ext.create('Rally.data.wsapi.TreeStoreBuilder').build({ 
     models: ['PortfolioItem/Initiative'], 
     autoLoad: true, 
     enableHierarchy: true 
    }).then({ 
     success: function(store) { 
      var myGrid = Ext.create('Ext.Container', { 
       items: [{ 
        xtype: 'rallytreegrid', 
        columnCfgs: ['Name', 'Owner'], 
        store: store 
       }], 
       renderTo: Ext.getBody() 
      }); 
     } 
    }); 
    this.add(myGrid); 
}, 

}); 

!

+0

Kod çalışmıyor, ancak ilerlemeden önce hatanın gerekçesini bulmak istedim. – arf

cevap

0

Sen içine çalıştıran nedeniyle bileşenler ve konteynerler yukarıda cevapta belirtildiği this kapsam sorunu ile kombine ExtJS davranmaya nasıl bazı karışıklıklara yol muhtemelen konum sorunu. sen hep yerleşik bileşen sorgulama özelliği kullanarak bulabilirsiniz beri etrafında bir myGrid referansı tutmak gerekiyor gibi

_createGrid: function() { 
    Ext.create('Rally.data.wsapi.TreeStoreBuilder').build({ 
     models: ['PortfolioItem/Initiative'], 
     autoLoad: true, 
     enableHierarchy: true 
    }).then({ 
     success: function(store) { 
      //The app class is already a container, so you can just 
      //directly add the grid to it 
      this.add({ 
       xtype: 'rallytreegrid', 
       itemId: 'myGrid', 
       columnCfgs: ['Name', 'Owner'], 
       store: store 
      }); 
     }, 
     scope: this //make sure the success handler executes in correct scope 
    }); 
} 

Ayrıca hissetmek gerekmez: Burada

bunu yazardım nasıl ExtJS:

var myGrid = this.down('#myGrid'); 
0

Daha sonra bu undefined olduğunu _createGrid fonksiyonu sonunda kullanmaya çalışınca, success fonksiyon kapsamı içine myGrid tanımlarken. Bunu, thissuccess işlevinin içinde doğru şekilde bağlı olmadığından bu şekilde yapmaya çalıştığınızı varsayalım. Bunun yerine bu deneyin:

_createGrid: function() { 
    var self = this; 
    Ext.create('Rally.data.wsapi.TreeStoreBuilder').build({ 
     models: ['PortfolioItem/Initiative'], 
     autoLoad: true, 
     enableHierarchy: true 
    }).then({ 
     success: function(store) { 
      var myGrid = Ext.create('Ext.Container', { 
       items: [{ 
        xtype: 'rallytreegrid', 
        columnCfgs: ['Name', 'Owner'], 
        store: store 
       }], 
       renderTo: Ext.getBody() 
      }); 
      self.add(myGrid); 
     } 
    }); 
}, 
İlgili konular