Замена Ext.reg () (xtype) в ExtJS4? - PullRequest
12 голосов
/ 21 марта 2011

Я хочу использовать MultiSelect из 3.3 в Ext JS 4, как описано в предыдущем вопросе:

Почему файлы селектора элементов Ext JS с множественным выбором не включены в загрузку Ext JS 3.3 игде они?

Кажется, что способ регистрации xtypes изменился в Ext JS 4. Когда я пытаюсь импортировать этот виджет вместе с ItemSelector.js, я получаюошибка в Ext.reg ().</p> <pre> Ext.reg('multiselect', Ext.ux.form.MultiSelect); //backwards compat Ext.ux.Multiselect = Ext.ux.form.MultiSelect; </pre> <p>

Как изменить виджеты, чтобы они работали в Ext JS 4?

Ответы [ 3 ]

22 голосов
/ 10 апреля 2011

Ext JS 4 использует новую систему классов для создания вашего виджета: http://www.sencha.com/blog/countdown-to-ext-js-4-dynamic-loading-and-new-class-system/

Убедитесь, что вы присваиваете своему виджету псевдоним, используя пространство имен "widget".Например:

Ext.define('Ext.ux.form.MultiSelect', {
    extend: 'ClassNameYouAreExtending',
    alias: 'widget.multiselect'
});

Затем вы можете обратиться к виджету с помощью xtype 'multiselect'.Когда вы используете xtype в Ext JS 4, он ищет класс с псевдонимом 'widget. [Xtype]'.

2 голосов
/ 21 марта 2011

Вам потребуется изменить код, чтобы запустить компонент MultiSelect в ExtJS 4. Вот несколько изменений, которые вам нужно будет сделать:

  1. Определение класса. ExtJS 3.x использовал Ext.extend для расширения. В новой версии вам придется использовать Ext.define

  2. В новой версии вы можете представить имя класса в виде строки. В связи с этим, я думаю, вам больше не потребуется метод Ext.reg. Класс Диспетчера компонентов не имеет функции регистрации.

0 голосов
/ 21 марта 2011

Ну, вы погружаетесь в пре-бета территорию, так что в какой-то степени вам придется посмотреть на код и разобраться с ним. Некоторое объяснение новой системы классов есть в сообщении блога , представляющем ее, и до выхода финальной версии 4.0 будет подробное руководство по миграции. Я бы определенно следил за этим на форумах Sencha 4.0, так как именно там будут болтаться все эксперты Ext 4.

...