我有很大的申请。 我会有一个公共文件夹,其中包含跨多个扩展名的常见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
请帮忙。
答案 0 :(得分:0)
请用'Ext.app.Controller'代替'commonapp.controller.CommonController'替换extend config。因为扩展您正在指定要扩展的类。要解决您的问题,只需在Ext.application块中添加该控制器('commonapp.controller.CommonController')作为另一个控制器的一部分。
感谢。