Мне нужно переопределить собственный конструктор одного из классов Extjs. Если быть точнее Ext.ensible.cal.DragZone, это из расширяемого календаря.Extjs3.4 Как переопределить конструктор
То, что я пытался, и какие решения я нашел
Put нужный код в исходный код, но я хочу, чтобы избежать оригинальные модификации кода. Все мои изменения Я хочу сохранить в одном месте
Ext.override - это не работает. родной конструктор называется anyway
Полностью дублируйте код из оригинальной библиотеки, но с моими изменениями. Ext.ensible.cal.DragZone = Ext.extend (Ext.dd.DragZone, {..... }); Но это вызывает некоторые другие непредвиденные ошибки, кажется, что не все функции вызываются (некоторые из полей класса, кажется, не были правильно инициализированы). Но если я просто поставил этот код, а не оригинал, все работает отлично (но см. № 1)
Создайте свой собственный Ext.ensible.cal.DragZone, расширив оригинал. Проблема этого метода заключается в том, что мне нужно просмотреть весь код библиотеки, переопределить и/или расширить все остальные классы, которые используют этот DragZone, чтобы заставить их использовать мои.
Так вы можете посоветовать мне что-л. Самое правильное решение для меня, кажется, просто переопределяет конструктор.
Как переопределение:
Ext.override(Ext.ensible.cal.DragZone, {
constructor : function() {
...
}
});
Но, как я сказал, оригинальный конструктор называется
Переделки для меня в прошлом работали для конструктора. Пожалуйста, напишите код, который не работает. Сказав это, вы должны только переопределить это ошибка, и вы ожидаете, что они ее исправит. Создание собственного подкласса - это способ сделать ваш код более эффективным для наименьшего количества кода, тогда будет затронут только код, который вы выбрали для использования вашего подкласса, это немного работает, но у вас меньше шансов иметь проблемы –
@JuanMendes обновил вопрос –