Javascript 将ExtJs应用加载到另一个ExtJs应用中
我正在开发一个大型企业应用程序,需要将模块(另一个ExtJs应用程序)延迟加载到主应用程序中。我正在尝试使用Ext.Loader加载其他应用程序的app.js:Javascript 将ExtJs应用加载到另一个ExtJs应用中,javascript,extjs,Javascript,Extjs,我正在开发一个大型企业应用程序,需要将模块(另一个ExtJs应用程序)延迟加载到主应用程序中。我正在尝试使用Ext.Loader加载其他应用程序的app.js: onTabChange: function (tabPanel, newCard, oldCard) { Ext.Loader.loadScript({ url: 'SecondaryApp/app.js', onLoad: function (obj) { console
onTabChange: function (tabPanel, newCard, oldCard) {
Ext.Loader.loadScript({
url: 'SecondaryApp/app.js',
onLoad: function (obj) {
console.log('ok');
},
onError: function (obj) {
console.log('ko');
},
scope: this
});
newCard.add({ xtype: 'secondarylist' });
}
回调没有问题,但是当我添加secondarylist组件时,抛出了“未捕获错误:[Ext.create]无法识别的类名/别名:widget.secondarylist”的异常。该部分是:
Ext.define('SecondaryApp.view.main.List', {
extend: 'Ext.grid.Panel',
xtype: 'secondarylist',
title: 'Personnel',
columns: [
{ text: 'Name', dataIndex: 'name' },
{ text: 'Email', dataIndex: 'email', flex: 1 },
{ text: 'Phone', dataIndex: 'phone', flex: 1 }
]
});
我试图只编译和加载List.js,但我还是遇到了同样的问题。
有什么建议吗
编辑:
我解决了这个问题(错误的url'--),但现在有另一个问题。如果我加载js文件,它工作正常,但是如果我尝试加载编译的js文件(使用Sencha Cmd),它会失败,因为Ext.Cmd未定义。我需要加载已编译的js,而不是原始js文件。有什么想法吗?尝试移动
newCard.add({xtype:'secondarylist'})代码>行进入onLoad
回调函数。它不工作,因为它试图从调用add
函数时加载js文件,抛出404 not found exception。我不明白为什么它在加载js文件之前使用loadScript
加载它,我认为这与“secondarylist”的名称空间问题有关。该组件尚未在第一个应用程序的命名空间中注册,您必须为其提供完整的命名空间。您是否尝试了Ext.create('App2.view.secondarylist',{configs…});从Sencha Cmd 6.5开始,您可以将代码拆分为多个文件。要实现这一点,如果尚未完成,则必须将代码拆分为exjts包代码>行进入onLoad
回调函数。它不工作,因为它试图从调用add
函数时加载js文件,抛出404 not found exception。我不明白为什么它在加载js文件之前使用loadScript
加载它,我认为这与“secondarylist”的名称空间问题有关。该组件尚未在第一个应用程序的命名空间中注册,您必须为其提供完整的命名空间。您是否尝试了Ext.create('App2.view.secondarylist',{configs…});从Sencha Cmd 6.5开始,您可以将代码拆分为多个文件。要实现这一点,如果尚未完成,则必须将代码拆分为exjts包。以下是我为另一个问题编写的更多详细信息: