मेरे पास Extjs वेब एप्लिकेशन विकसित करने के कुछ महीनों का अनुभव है। मैं इस समस्या में भाग गया:Extjs कक्षाओं को ओवरराइड करना और कॉल का आह्वान करना माता-पिता
जब मैंने कक्षा को ओवरराइड किया, तो मैंने विधि संशोधित की और पिछले कार्यान्वयन का पालन किया और callParent()
का आह्वान किया। ओवरराइडिंग हिस्सा काम करता है लेकिन callParent()
ने पुराने कार्यान्वयन का आह्वान किया।
मेरी अधिभावी कोड
Ext.override(Ext.layout.component.Draw, {
finishedLayout: function (ownerContext) {
console.log("new layouter being overriden");
this.callParent(arguments);
}
});
ExtJS वर्ग विधि ओवरराइड करने के लिए:
finishedLayout: function (ownerContext) {
var props = ownerContext.props,
paddingInfo = ownerContext.getPaddingInfo();
console.log("old layouter being overriden");
this.owner.setSurfaceSize(props.contentWidth - paddingInfo.width, props.contentHeight - paddingInfo.height);
this.callParent(arguments);
}
कंसोल में, मैं संदेश पुराने layouter के बाद बाहर है कि पहले नई layouter प्रिंट देख सकते हैं कार्यान्वयन ... मैंने ब्रेकपॉइंट लगाया और पुराने लेआउट नामक नए लेआउट के callParent()
को आविष्कार स्टैक को पीछे हटाना शुरू कर दिया। मुझे अभिभावक वर्ग को कॉल करने की आवश्यकता है, लेकिन ओवरराइड विधि नहीं है।
कोई समस्या यह समस्या हल करने के लिए कैसे करें?
संस्करण को छोड़ने के लिए खेद है मैंने उपयोग किया, मैं ExtJs 4.1.2 का उपयोग कर रहा हूँ। चुना गया उत्तर सही दृष्टिकोण है लेकिन मैं इसका उपयोग नहीं कर सका, इसके बजाय मैंने @ वेंटोक द्वारा प्रदान किए गए उत्तर का उपयोग किया। –
वैसे, अपने सुपरर्स में से एक को छोड़कर एक बड़ा हैक है, इसे समझदारी से और कम से कम इस्तेमाल करें! –