У меня вопрос по множественному наследованию в ExtJS. Хотя я знаю, что могу просто продублировать код, чтобы это произошло, но я хочу знать, есть ли способ кодировать его более эффективно.
У меня есть настроенный компонент GridPanel
в моей структуре, называемый Kore.ux.grid.GridPanel
. Он расширяет Ext.GridPanel
дополнительными общими функциями и предоставляет интерфейс для действий REST.
Вскоре моя коллега хотела, чтобы EditorGridPanel
также был реализован таким же образом, то есть она хочет, чтобы она была редактируемой, и в то же время имела возможность легко выполнять действия REST.
У меня вопрос: можно ли как-нибудь расширить Ext.EditorGridPanel
, чтобы использовать пользовательские функции Kore.ux.grid.GridPanel
?
Извините за любые грамматические ошибки, и я могу перефразировать его, если это сбивает с толку. Спасибо !!
EDIT
Я снова гуглил и нашел темы, в которых говорилось, что это невозможно. Есть ли лучший шаблон кодирования, которому я должен следовать, если у меня есть эта проблема?
Спасибо!
ИЗМЕНИТЬ СНОВА
Извините, я нашел структуру, которая мне подходит .. Вот метод, который я нашел полезным для меня:
var Common = function(){} //abstract class
Ext.apply(Common.prototype, {
a : function(){},
b: function(){}...
});
Ext.ux.SomePanelA = Ext.extend ( Ext.Panel, {
stuff : ............
});
Ext.ux.SomePanelB = Ext.extend ( Ext.Panel, {
diffStuff : ............
});
Ext.applyIf(Ext.ux.SomePanelA.prototype, Common.prototype);
Ext.apply(Ext.ux.SomePanelB.prototype, Common.prototype);
Код Источник: http://www.sencha.com/forum/showthread.php?48000-multiple-inheritance&p=228271&viewfull=1#post228271
Пожалуйста, еще раз предоставьте полезные предложения, если вы считаете, что у вас есть лучшее решение :) Спасибо!