में विस्तारक नियंत्रक एमवीसी संरचना के बाद मैं अपना एक्स्टजेएस 4 एप्लीकेशन बना रहा हूं। मैं कुछ कार्यक्षमता के साथ एक विस्तारित ग्रिड MyGrid बनाना चाहता हूं जिसे मैं कई बार पुन: उपयोग कर सकता हूं। इसलिए, मुझे लगता है, यह अपने स्वयं के नियंत्रक होना चाहिए जो भी बढ़ाया गया है, ताकि कार्यक्षमता विरासत में हो। यह ठीक से कैसे किया जाता है?ExtJS 4 एमवीसी अनुप्रयोग
नीचे दिए गए कोड में मैं दिखाता हूं कि मैं MyExtendedGrid के साथ नियंत्रक MyGrid कैसे बढ़ाता हूं। मुझे एहसास है कि मैग्रिड नियंत्रक में init फ़ंक्शन को ओवरराइड कर रहा हूं, ताकि इसे कभी भी नहीं कहा जा सके। MyExtendedGrid init से MyGrid में "सुपर" init पर कॉल करके समस्या हल हो गई है, या नियंत्रण ऑब्जेक्ट्स को मर्ज करें? क्या यह एमवीसी भावना में ऐसा करने का सही तरीका है? यदि हां, तो कैसे?
नियंत्रक/MyGrid.js:
Ext.define('App.controller.MyGrid', {
extend: 'Ext.app.Controller',
refs: [
{
ref: 'myGridView',
selector: 'mygrid'
}
],
init: function() {
var me=this;
me.control({
'mygrid textfield[name=searchField]': {
change: function() {
var view = me.getMyGridView();
// Do something with view
}
}
});
}
});
नियंत्रक/MyExtendedGrid.js:
Ext.define('App.controller.MyExtendedGrid', {
extend: 'App.controller.MyGrid',
views: [
'grids.MyExtendedGrid'],
refs: [
{
ref: 'myExtendedGridView',
selector: 'myextendedgrid'
}
],
init: function() {
var me=this;
me.control({
'myextendedgrid': {
// Some control code
// Using getMyExtendedGridView()
}
});
}
});
देखें/ग्रिड/MyGrid.js:
Ext.define('App.view.grids.MyGrid', {
extend: 'Ext.grid.Panel',
alias : 'widget.mygrid',
requires: [
],
store: '', // Not defined here
columns: [ ], // Not defined here
initComponent: function() {
var me = this;
me.tbar = [
'Search',
{
xtype: 'textfield',
name: 'searchField',
hideLabel: true,
width: 150
}
];
me.callParent(arguments);
}
});
देखें/ग्रिड/MyExtendedGrid .js:
Ext.define('App.view.grids.MyExtendedGrid', {
extend: 'App.view.grids.MyGrid',
alias : 'widget.myextendedgrid',
store: 'MyStore',
columns: [
// ...
],
initComponent: function() {
var me = this;
me.bbar = [
//...
];
me.callParent(arguments);
}
});
धन्यवाद, क्या आप मुझे कुछ प्रेरणा .. – Louis
@sha मैं वास्तव में यह प्यार होता है, तो आपको एक कोड स्निपेट या दो पोस्ट हैं दे दी है। –
@LeviHackwith: कोई समस्या नहीं है। आइए इसे अलग प्रश्न में करें ताकि हम इसे भ्रमित न करें। नया सवाल पोस्ट करना चाहते हैं? – sha