2012-11-19 12 views
6
this.loadSmt = function(argPanel) 
{ 
    this.store1 = new Ext.data.JsonStore({ 
     url    : 'URL1', 
     totalProperty : 'total', 
     successProperty : 'success', 
     root   : 'root1', 
     fields   : [ 
          {name: 'data1'}, 
          {name: 'data2'} 
         ] 
    }); 

    this.store2 = new Ext.data.JsonStore({ 
     url    : 'URL2', 
     totalProperty : 'total', 
     successProperty : 'success', 
     root   : 'root2', 
     fields   : [ 
          {name: 'data21'}, 
          {name: 'data22'}, 
          {name: 'data23'}, 
          {name: 'data24'}, 
          {name: 'data25'} 
         ] 
    }); 

    this.store1.on('beforeload', function() { 
     this.store1.baseParams = { 
      argID: myID 
     }; 
    }, this); 

    this.store2.load({ 
     callback : function() { 
      var graphOwner = argPanel; 
      var graphDataArr = []; 
      var i = 0; 
      this.data.each(function(item, index, totalItems) { 
       var data1 = item.data['data1']; 
        var data2 = item.data['data2']; 

        // create arraystore data for graph 
        var tempArr = new Array(); 
        tempArr.push(data1); 
        tempArr.push(data2); 
        graphDataArr[i] = tempArr; 
        i++; 
      }); 


      this.GraphPanel = this.getMyGraph(graphDataArr); 

     } 
    }, this); 
}; 

this.getMyGraph = function(argGraphValue) 
{ 
    // do something 
} 

में दुकान लोड समारोह में गुंजाइश उपयोग करने के लिए मैंजब मैं इस कोड को चलाने के लिए कैसे ExtJS

TypeError: this.getMyGraph is not a function

त्रुटि, जब मैं दुकान कॉलबैक में उपयोग

this.data.each

समारोह, मैं कर सकते हैं ' टी

this.getMyGraph

फ़ंक्शन का उपयोग करें। मुझे लगता है कि यह एक गुंजाइश समस्या है, मैं किसी फ़ंक्शन पर पैरामीटर के रूप में दायरा कैसे पारित कर सकता हूं या मैं इस त्रुटि को कैसे ठीक कर सकता हूं?

उत्तर

7

दायरा पास करने का आपका तरीका सही नहीं है। आपको लोडिंग विकल्पों के स्कोप पैरामीटर का उपयोग करने की आवश्यकता है।

this.store2.load({ 
    callback : function(records, operation, success) { 
    ... 
    }, 
    scope: this 
}); 

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-method-load

+0

मैं के रूप में आपको बताएंगे कि मेरी कोड बदल जाते हैं। अब मुझे 'TypeError मिल रहा है: this.data अपरिभाषित है 'त्रुटि। – vtokmak

+2

कॉलबैक हस्ताक्षर को 'कॉलबैक में बदलें: फ़ंक्शन (रिकॉर्ड्स, ऑपरेशन, सफलता)' और इसके बजाय इस डीटा को रिकॉर्ड करें – Damask

+0

यह काम करता है। thx बहुत @Prodigy – vtokmak

संबंधित मुद्दे