在ExtJS4中替换Ext.reg()(xtype)?

12 javascript extjs multi-select

我想在Ext JS 4中使用3.3中的MultiSelect,如上一个问题所述:

为什么Ext JS多选项目选择器文件不包含在Ext JS 3.3下载中,它们在哪里?

似乎注册xtypes的方式在Ext JS 4中已经改变.当我尝试导入这个小部件时,以及ItemSelector.js,我在Ext.reg()上得到一个错误.

Ext.reg('multiselect', Ext.ux.form.MultiSelect);

//backwards compat
Ext.ux.Multiselect = Ext.ux.form.MultiSelect;

如何更改wdigets以使它们在Ext JS 4中工作?

Phi*_*ant 22

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'
});
Run Code Online (Sandbox Code Playgroud)

然后你可以通过xtype'multiiselect'来引用小部件.当你在Ext JS 4中使用xtype时,它会查找一个别名为'widget.[xtype]'的类.