将ExtJs应用加载到另一个ExtJs应用

时间:2017-01-02 16:30:50

标签: javascript extjs

我正在开发一个大型企业应用程序,我需要将惰性加载模块(另一个ExtJs应用程序)放入主应用程序中。我正在尝试使用Ext.Loader加载其他应用程序的app.js:

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' });
}

回调没关系但是当我添加二级列表组件时,会抛出“未捕获错误:[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但我仍然遇到同样的问题。 有什么建议吗?

编辑: 我解决了这个问题(坏网址'-_-),但现在有另一个问题。如果我加载js文件它可以正常工作,但如果我尝试加载已编译的js文件(使用Sencha Cmd)它会失败,因为Ext.cmd未定义。我需要加载已编译的js而不是原始的js文件。有什么想法吗?

0 个答案:

没有答案