firefox - ExtJs5-ext-all-debug.js के अंतर्गत परिभाषित मूल विधि को ओवरराइड करना




migration override firebug (2)

मान लीजिए कि मैं फ़ाइल को ext-all-debug.js में सेन्का द्वारा प्रदान किए गए देशी कोड के अंदर फ़ंक्शन को ओवरराइड करना चाहता हूं

समारोह Ext.util.Renderable- वर्ग के भीतर परिभाषित किया गया है और नाम कैश है RefEls

भविष्य के रिलीज के लिए इसे बनाए रखना आसान बनाने के लिए परियोजना के index.html के अंदर ओवरराइड होना चाहिए

मैंने पहले से ही इस धागे के भीतर प्रस्तावित ओवरराइड समाधानों का प्रयास किया है:

सेनेका ExtJS मानक घटक कार्यक्षमता (Ext.tree.Panel और Ext.data.TreeStore दो उदाहरणों के रूप में ओवरराइड करने के लिए कदम)

मेरी index.html इस प्रकार दिखती है:

<html>
...
<script type="text/javascript">
    Ext.define('Myapp.view.Renderable', {
        override: 'Ext.util.Renderable',
        cacheRefEls: function(el) {
              console.log("in overider method");
             //my adapted version of it
        }   
    });
</script>
...
</html>

दुर्भाग्य से लोकलहोस्ट तक पहुंचने के बाद : फ़ायरफ़ॉक्स -3380 पर 8080 यह फायरबग-2-कंसोल-लॉग से दिखाई देता है जो कि यह फ़ंक्शन के मूल संस्करण का उपयोग करता है।

मुझे यहां क्या समझ नहीं आ रहा है?


Answers

एक्स्टजेएस 5 में, आपको इन विधियों को privates कॉन्फ़िगरेशन में ले जाना होगा।

आपको त्रुटि दिखाई देनी चाहिए:

सार्वजनिक पद्धति "कैश आरएफईएल" निजी ढांचा विधि के साथ विवादित है जो Ext.util.Renderable द्वारा घोषित किया गया है

आप अभी भी निजी विधि को ओवरराइड कर सकते हैं। आपके मामले में, समाधान होगा:

Ext.define('Myapp.view.Renderable', {
    override: 'Ext.util.Renderable',
    privates: {
       cacheRefEls: function(el) {
          console.log("in overider method");
         //my adapted version of it
       }
    }   
});

What good will it do to override static methods. You cannot call static methods through an instance.

MyClass.static1()
MySubClass.static1()   // If you overrode, you have to call it through MySubClass anyway.

EDIT : It appears that through an unfortunate oversight in language design, you can call static methods through an instance. Generally nobody does that. My bad.





firefox extjs migration override firebug