У меня вопрос о множественном наследовании в ExtJS. Хотя я знаю, что могу просто дублировать код, чтобы это произошло, но я хочу знать, есть ли способ более эффективно его кодировать.Extjs множественное наследование?
У меня есть настраиваемый компонент GridPanel
в моей структуре, называемый Kore.ux.grid.GridPanel
. Он расширяет Ext.GridPanel
с более распространенными функциями и обеспечивает интерфейс для действий REST.
Вскоре позже мой коллега хотел, чтобы он также был реализован таким же образом, то есть она хочет, чтобы он был доступен для редактирования и в то же время имел возможность легко выполнять действия REST.
Мой вопрос: есть ли способ продлить Ext.EditorGridPanel
, чтобы подгонять настроенные функции Kore.ux.grid.GridPanel
?
Извините за любые ошибки грамматики, и я могу перефразировать его, если это сбивает с толку. Благодаря!!
EDIT
Я снова гугл, и я нашел темы, говоря, что это невозможно. Есть ли какой-нибудь лучший шаблон кодирования, который я должен соблюдать, если у меня есть эта проблема?
Спасибо!
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
Пожалуйста, снова дайте полезные советы, если вы считаете, что у вас лучшее решение :) Спасибо!
PLUGIN! Почему я забыл о его существовании !! Спасибо за предложение :) Посмотрите, как я включу его в рамки.Спасибо :) –
Но это может не соответствовать моему делу, так как мой настраиваемый GridPanel предоставляет настраиваемый pagingToolbar, предопределенные кнопки, поле поиска, REST ... и т. Д. Плагин может быть не таким :) Спасибо за предложение в любом случае! –
Почему бы и нет? Вы можете получить доступ к этим настраиваемым компонентам из плагина, чтобы привязать к ним свои функции. В конце концов, то, что делает плагин, на самом деле является 'Ext.apply()' именно так, как вы это делаете сейчас. Он просто добавляет немного более надежный и простой в использовании API для этого. – Mchl