1

我正在将我的项目从 Ext3.3 更新到 Ext4。添加新的 ext4 文件后,
我添加了ext3-core-compat.js和文件。 ext3-compat.jsext-all-debug.js

我得到了members is udefined errorext-all-debug.js 的第 3262 行。
在 Ext.extend 方法中,它接受 3 个参数:

Ext.extend = function(subclass, superclass, members) 

我可以从 ExtJs4 文档中看到 Ext.extend 已被弃用,但是我只想让我的代码在我将所有内容更改Ext.extendExt.define.

有帮助吗?

4

2 回答 2

2

我假设您正在使用匿名构造函数语法,像这样?

MyClass = function(config) {
    ...
}
Ext.extend(MyClass, SomeOtherClass, {
    ...
});

如果是这样,Ext4 或兼容层无法检测到这种形式,必须手动更新为新的标准Ext.define语法。我不确定迁移文档中是否提到了这一点,如果没有,我会添加它。

于 2011-05-09T18:57:41.933 回答
0

假设您已按照ExtJS 3 到 4 迁移指南中的步骤进行操作,我认为除了手动浏览您的应用程序并进行更改之外,没有什么可以做的。根据 Sencha 关于迁移的博客文章(强调我的):

Ext JS 3 兼容层

这由一组文件组成,当在 Ext JS 4 之后包含这些文件时,这些文件将提供覆盖,这些文件将引导现有的 Ext JS 3 代码在 Ext JS 4 下运行。这一层的目标不是让您的应用程序在未修改的情况下在 Ext JS 下运行4 长期。相反,您应该期望仅将此层用作完全迁移到 Ext JS 4 的临时手段。提供它的目的是帮助使过渡尽可能快速和轻松。与从空白屏幕调试晦涩的错误不同,您将能够使用兼容层更快地将应用程序恢复到渲染和功能状态,从而大大轻松地开始迁移到最新架构。

于 2011-05-09T16:32:00.793 回答