app フォルダの外で定義されたクラスを持つ sencha touch アプリケーションを構築しています。そのクラスを動的にロードする方法です。
アプリケーションの構造は次のようになります。
assets
-> Assignment
-> controller
-> AssignmentAPI
-> Application
-> app
-> controller
-> LoadAssignment
-> app.js
割り当てAPI:
Ext.define('Assignment.controller.AssignmentAPI', {
extend:'Ext.app.Controller',
statics: {
getAssignments: function() {
}
}
});
ロード割り当て:
Ext.define('Application.controller.LoadAssignment', {
extend:'Ext.app.Controller',
requires: [
],
statics: {
populateAssignments: function() {
Ext.require(['Product.controller.AssignmentAPI']);
var assignmentAPI = Ext.ClassManager.get('Assignment.controller.AssignmentAPI');
//Assignment API is coming as NULL
assignmentAPI.getAssignments()
}
}
});
app.js
Ext.Loader.setPath({
'Ext': 'sdk/src',
'Assignment': '../Assignment'
});
注*: LoadAssignment クラスの requires:[] で Task.controller.AssignmentAPI クラスを指定すると正常に動作しますが、Ext.require() を使用して Assignment.controller.AssignmentAPI をロードすると動作しません。