![](/img/trans.png)
[英]Ext.reg('examplegrid', Example.Grid); ----->Uncaught TypeError: undefined is not a function
[英]Replacing Ext.reg() (xtype) in ExtJS4?
我想在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中工作?
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'multiiselect'來引用小部件。 當你在Ext JS 4中使用xtype時,它會查找一個別名為'widget。[xtype]'的類。
您必須修改代碼才能在ExtJS 4上運行MultiSelect組件。以下是您需要做的一些更改:
類定義。 ExtJS 3.x使用Ext.extend進行擴展。 使用新版本,您將不得不使用Ext.define
在新版本中,您可以將類名稱表示為字符串。 因此,我認為你不再需要Ext.reg方法了。 Component Manager類沒有寄存器功能。
好吧,你正在進入測試前的領域,所以在某種程度上你將不得不查看代碼並弄明白。 在介紹它的博客文章中對新課程系統有一些解釋,並且在4.0最終版本發布之前將會有一個全面的遷移指南。 我肯定會在Sencha 4.0論壇中追求這一點,因為那時所有的Ext 4專家都會在這里閑逛。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.