Extjs - 4.1从不同的包中扩展控制器

时间:2013-04-23 06:38:34

标签: extjs4.1

我有很大的申请。 我会有一个公共文件夹,其中包含跨多个扩展名的常见extjs文件。 扩展文件夹将扩展基本视图,并添加自己的组件。 我的申请结构将是

共同 -app - 模型 - 视图 - 商店 --controller --- CommonController.js(控制器文件)

扩展名1 -app - 模型 - 视图 - 商店 --controller --- Extension1Controller.js(这应该扩展CommonController.js) app.js

app.js

代码:

Ext.Loader.setConfig({enabled:true});
Ext.Loader.setPath('Ext.ux', 'extjs/ux');
Ext.Loader.setPath('commonapp', '/common/app');
Ext.require([
    'Ext.data.*',
    'Ext.grid.*',
    'Ext.tree.*'

]);


Ext.application({
    name: 'NSM',
    appFolder: '/extension1/app',

    controllers: [

        'Extension1Controller'

    ],
    launch: function() {

        Ext.create('Ext.panel.Panel', {
        layout: 'fit',
        renderTo:'contentContainer',

        items: [
            {
                xtype: 'panel'

            }
        ]
    });

    }
});

Extension1Controller.js

Ext.define('NSM.controller.Extension1Controller', {
    extend: 'commonapp.controller.CommonController', //Extending the controller from common






    init: function() {
        //this.getWPPolicyStoreStore().addListener('write',this.finishedLoading, this);

        console.log("in sample controller");
    }


    });

但是在错误后扩展抛出

未捕获错误:即使已加载文件,也未声明以下类:'commonapp.controller.CommonController'。请查看相应文件的源代码以获取可能的拼写错误:'/common/app/controller/CommonController.js

请帮忙。

1 个答案:

答案 0 :(得分:0)

请用'Ext.app.Controller'代替'commonapp.controller.CommonController'替换extend config。因为扩展您正在指定要扩展的类。要解决您的问题,只需在Ext.application块中添加该控制器('commonapp.controller.CommonController')作为另一个控制器的一部分。

感谢。