Я должен признать, что старый ответ был не совсем верным.Клонирование компонентов доступно начиная с ExtJS2 и может быть выполнено через cloneConfig(overrides)
, который является методом экземпляра.
Это вернет клон текущего экземпляра с примененными переопределениями (если установлен).Чистый клон потребует от вас использования правильных конфигураций, что означает, что в конфигурации не будет создано ни одного экземпляра. Вот некоторая информация об этом Для получения более подробной информации прочитайте Руководства Сенчи
Старый ответ (действительно только есликомпоненты для клонирования конфигурации содержат экземпляры вместо простых конфигураций)
Нет, встроенного способа сделать это не существует.И тебе не стоит это пробовать.Попробуйте обернуть панель в функцию, которая возвращает его экземпляр (простой вид фабрики).
Редактировать
Примерно так:
Factory.Panel = function (config) {
var defaults = {
labelWidth: 80,
labelAlign: 'left',
layout: 'form',
width: 720,
autoHeight: true,
header: false,
bodyStyle: 'padding:10px 15px;'
};
var cfg = Ext.apply({}, config, defaults);
var cmp = new Panel(cfg);
return cmp;
}
Вы можете добавить столько параметров функции, сколько захотите.Это был бы чистый способ сделать это.Вы просто можете клонировать простой объект, как запись.Обратите внимание, что Factory - это пространство имен!