升级 ExtJS 至 4.0.7 时遇到的几个小问题

ExtJS 4.0.7 更新要点
本文概述了ExtJS 4.0.7版本的重要更新,包括新的类库定义方式、Ext.Loader动态加载配置、Ext.panel.Panel组件的变化等内容,并提供了针对这些变化的建议。

1、 新的类库体系

旧的类定义方式为:
1
2
3
4
5
6
App.view.Viewport = Ext.extend(Ext.panel.Panel, {
    initComponent: function () {
       // call parent initComponent method
       App.view.Viewport.superclass.initComponent.apply( this , arguments);
    }
});
新的类定义方式为:
1
2
3
4
5
6
Ext.define( 'App.view.Viewport' , {
    initComponent: function () {
       // call parent
       this .callParent(arguments);
    }
});

2、 Ext.Loader 动态加载 js 文件

4.0.7 版本的 Ext.Loader 默认是未启用动态加载的, 导致运行时会报错, 要手工设置启用动态加载, 启用动态加载的代码为:
1
Ext.Loader.setConfig({  enabled: true  });
Ext.Loader 还有几个有用的参数(paths、 disableCaching)等, 可以查看相关 Ext.Loader API。

3、 Ext.panel.Panel 的 onResize 方法已经删除

没错, Ext.panel.Panel 的 onResize 方法已经删除, 重写 onResize 方法的类需要稍微修改一下, 推荐使用 componentLayout 事件或者 afterComponentLayout 方法。

4、 Ext.panel.Panel 的 collapsible 设置为 true 时,必须设置 panel 宽度

如果没有设置 panel 的宽度, 点击 panel 的 collapse 工具按钮时, 会导致整个 panel 不可见。

5、 不能手工刷新 Ext.form.ComboBox 的 store 的数据

如果用代码刷新了 ComboBox 的 store 的数据, 会导致其弹出的选择列表一直显示“正在加载”, 无法进行选择, 如果必须要刷新 store 数据, 只能改用其它的控件代替 ComboBox。

张志敏所有文章遵循创作共用版权协议,要求署名、非商业 、保持一致。在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。

本博客已经迁移到 GitHub , 围观地址: http://beginor.github.io/

本文转自张志敏博客园博客,原文链接:http://www.cnblogs.com/beginor/archive/2011/12/28/2304215.html ,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值