私は巨大なアプリケーションを持っています。複数の拡張機能にまたがる共通の extjs ファイルを含む共通のフォルダーがあります。拡張フォルダーは、共通の基本ビューを拡張し、独自のコンポーネントを追加します。私のアプリケーション構造は
common -app --model --view --store --controller ---CommonController.js(コントローラーファイル)
extension1 -app --model --view --store --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
助けてください。