ExtJS4 - расширение различных компонентов из одного базового класса
-
20-12-2019 - |
Вопрос
У меня есть веб-приложение, для которого я использую extjs 4.2.Это приложение имеет кучу различных компонентов - панель, которая отображает некоторые данные, другая панель, которая отображает некоторые другие данные, сетку, диаграмму, и т. Д., ETC.
Требуется, что каждый компонент имеет минимум определенный набор функций и свойств.Поэтому я хотел бы определить класс компонента, который я могу продлить все остальное.Например:
Ext.define('MyApp.BaseComponent', {
extend: 'Ext.panel.Panel',
alias: 'widget.myapp-basecomponent',
prop1: true,
prop2: 17,
func1: function (a, b) {
return a + b;
}
});
.
Тогда я бы расширил каждый отдельный компонент в моем приложении из этого базового компонента класса.Проблема в том, что если я определим базовый компонент как расширение «Ext.Panel.panel», я могу только расширить другие панели из него.Я не могу продлить сетку, дерево и т. Д. От него.
Есть ли способ, которым я могу это сделать?Или я приближаюсь к этому неправильному способу?Может быть, я должен просто устанавливать все, что не является панелью (сеткой, диаграммой и т. Д.) На панели, чтобы все они могли продлить от базообразования?Совет очень ценится.
Решение
Если вы просто хотите увеличить класс базового компонента, вы всегда можете просто предоставить переопределение, которое добавляет их:
Ext.define('MyApp.AugmentComponent', {
override: 'Ext.Component',
a: 1,
b: 2,
fn1: function() {
}
});
.