簡體   English   中英

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

[英]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組件。以下是您需要做的一些更改:

  1. 類定義。 ExtJS 3.x使用Ext.extend進行擴展。 使用新版本,您將不得不使用Ext.define

  2. 在新版本中,您可以將類名稱表示為字符串。 因此,我認為你不再需要Ext.reg方法了。 Component Manager類沒有寄存器功能。

好吧,你正在進入測試前的領域,所以在某種程度上你將不得不查看代碼並弄明白。 在介紹它的博客文章中對新課程系統有一些解釋,並且在4.0最終版本發布之前將會有一個全面的遷移指南。 我肯定會在Sencha 4.0論壇中追求這一點,因為那時所有的Ext 4專家都會在這里閑逛。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM