扩展类进行ajax调用

扩展类进行ajax调用,ajax,inheritance,extjs,Ajax,Inheritance,Extjs,我是ExtJS4的新手,在扩展类时遇到了问题。我有以下文件: UsersWindow.js DealersWindow.js 当我运行应用程序时,一切正常,但是,我有一个ajax调用: /UserModel.js?_dc=1379135132790 这会给出一个404,然后是一个解析javascript的错误。我想知道ExtJS为什么打这个电话?每个类都应该在自己的文件中吗?我可以将ExtJS配置为不查找此文件吗 谢谢您的帮助。是的,每个类都必须在自己的文件中,Ext Loader才能正常工作

我是ExtJS4的新手,在扩展类时遇到了问题。我有以下文件:

UsersWindow.js

DealersWindow.js

当我运行应用程序时,一切正常,但是,我有一个ajax调用:

/UserModel.js?_dc=1379135132790
这会给出一个404,然后是一个解析javascript的错误。我想知道ExtJS为什么打这个电话?每个类都应该在自己的文件中吗?我可以将ExtJS配置为不查找此文件吗


谢谢您的帮助。

是的,每个类都必须在自己的文件中,Ext Loader才能正常工作。此外,文件名应与类相同,其路径应与命名空间匹配

这里发生的是
extend:'MyDesktop.UserModel'
行提示
Ext.Loader
加载
UserModel
类,它希望在
MyDesktop
命名空间根路径的
UserModel.js
文件中找到该类,它似乎被配置为应用程序的根目录

您可以使用
加载程序的属性或为不同名称空间配置根源目录

如果要阻止Ext尝试加载此文件,则必须先加载程序,然后必须将所有源文件作为
标记包含在HTML中。我认为这也将使以后不可能编译应用程序的生产版本

或者,您可以将
MyDesktop.UserModel
的定义放在
MyDesktop.DealerModel
的定义之上,或者放在同一文件中,或者放在脚本标记中它前面的文件中。请注意,即使这样也可能不起作用,因为类定义中的
requires
选项可能会更改实际执行类定义的顺序。再说一次,这可能最终会破坏构建过程


简言之,您不应该尝试再次满足框架的期望。特别是当你认为类名和文件系统之间的1:1映射是关于每个OO语言的标准实践时,

将你的模型类名“MyTabase.UsModel”改为“MyTabase.Module.UsModel”,并用“UrrodModel”中的名称“UrModel”重新命名你的文件,谢谢,我把UserModel放在它的文件和它的作品中。我没有将DealerModel放在它的文件中,因为我没有得到任何错误。我想这是因为DealModel类没有“扩展”,如果您希望有朝一日使用Ext的编译器构建应用程序,那么现在就应该养成每个文件有一个类的习惯。
Ext.define('MyDesktop.DealerModel', {
    extend: 'MyDesktop.UserModel',
    /* ... */
}

Ext.define('MyDesktop.DealersWindow', {
    extend: 'MyDesktop.UsersWindow',
    /* ... */
}
/UserModel.js?_dc=1379135132790