2013-08-26 7 views
5
समस्या

मुझे मिल गया है से कामExtJS 4.2 पैरामीटर मेरी नियंत्रक के साथ

Ext.define('app.controller.myController', { 
    init: function() { 
     this.control({ 
      '#myinputfield': { 
       change: this.textFieldChange(parameter) 
      } 
     }) 
    }, 
    textFieldChange: function(parameter) { 
     //do something 
    } 
}); 

इस समस्या है जब मैं पैरामीटर यहाँ

change: this.textFieldChange(parameter) 

तो इसकी आग छोड़ देना साइट के बाद की तरह अपने रंग-रूप भार और मुझे नहीं पता क्यों।

बिना पैरामीटर के बदलाव के लिए इसकी प्रतीक्षा की तरह कोई भी मेरी मदद कर सकता है?

उत्तर

7

यह इसलिए क्योंकि:

यहाँ change: this.textFieldChange आप इस संपत्ति

यहाँ change: this.textFieldChange(parameter) आप इस संपत्ति के लिए परिणाम समारोह के दे रहे हैं (करने के लिए इस समारोह के लिए संदर्भ दे रहे हैं जो अगर हम डॉन ' टी वापसी का उपयोग करें, तो यह undefined होगा)।

आप कस्टम पैरामीटर भेजने के लिए, समारोह परिभाषा eOpts चर का उपयोग कर सकते हैं, उदाहरण में देखें:

Ext.define('app.controller.myController', { 
    init: function() { 
     this.control({ 
      '#myinputfield': { 
       change: { 
        fn : this.textFieldChange, 
        params : { 
         param1: 'something' 
        } 
       } 
      } 
     }) 
    }, 
    textFieldChange: function(textfield, newValue, oldValue, eOpts) { 
     var params = eOpts.params; 
     console.log(params.param1); 
     //do something 
    } 
});

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