Ошибка при обновлении с ExtJs3 до ExtJs4 — «члены не определены» в режиме совместимости?

Я обновляю свой проект с Ext3.3 на Ext4.
Я добавил файлы ext3-core-compat.js и ext3-compat.js после добавления нового файла ext4 ext-all-debug.js.

Я получаю members is udefined error в строке 3262 ext-all-debug.js.
Который находится внутри метода Ext.extend, который принимает 3 параметра:

Ext.extend = function(subclass, superclass, members) 

из документации ExtJs4 я вижу, что Ext.extend устарел, однако я просто хочу, чтобы мой код работал, прежде чем я изменю все свои Ext.extend на Ext.define.

Любая помощь, ребята?


person shane87    schedule 09.05.2011    source источник


Ответы (2)


Я предполагаю, что вы используете синтаксис анонимного конструктора, например?

MyClass = function(config) {
    ...
}
Ext.extend(MyClass, SomeOtherClass, {
    ...
});

Если это так, эта форма не может быть обнаружена Ext4 или уровнем совместимости и должна быть обновлена ​​вручную до нового стандартного синтаксиса Ext.define. Я не уверен, упоминается ли это в настоящее время в документации по миграции, и если нет, я добавлю это.

person Brian Moeskau    schedule 09.05.2011
comment
Спасибо, Брайан. Это именно то, что я делаю. - person shane87; 10.05.2011

Предполагая, что вы выполнили шаги, описанные в руководстве по миграции с ExtJS 3 на 4, я не думаю, что можно сделать что-то еще, кроме как вручную просмотреть ваше приложение и внести изменения. Согласно сообщению в блоге о миграции Sencha (выделено мой):

Слой совместимости Ext JS 3

Он состоит из набора файлов, которые при включении после Ext JS 4 предоставляют переопределения, которые загрузят существующий код Ext JS 3 для запуска в Ext JS 4. Цель этого уровня не в том, чтобы позволить вашему приложению работать без изменений в Ext JS. 4 долгосрочные. Напротив, вы должны использовать этот уровень только как временное средство полного перехода на Ext JS 4. Цель его предоставления — помочь сделать переход максимально быстрым и безболезненным. Вместо того, чтобы отлаживать неясные ошибки с пустого экрана, вы сможете гораздо быстрее вернуть свое приложение в отрисованное и функциональное состояние с помощью уровня совместимости, что значительно упростит переход на последнюю архитектуру.

person NT3RP    schedule 09.05.2011