私はこれがベストプラクティスであるかどうかはわかりませんが、ExtJs 4.0.7で動作することが分かります。
たとえば、私は次のフォルダ構造を持っています:
proj
index.htm
proj
app.js
app
view
SimpleIFrame.js
したがって、app.jsには次のコードがあります:
Ext.Loader.setConfig(
{
enabled: true
});
Ext.Loader.setPath('proj.view', './proj/app/view');
Ext.Loader.require([
'proj.view.SimpleIFrame'
])
SimpleIFrameには次のコードがあります:
Ext.define('proj.view.SimpleIFrame', {
extend: 'Ext.Panel',
alias: 'widget.simpleiframe',
...
});
それでは、後でapp.jsで私は以下を行うことができます:
var panel = Ext.create('adminClaiming.view.SimpleIFrame', {
title: 'Hello',
...
});
これにより、app.js全体を別々のファイルに分けることができます。私がこれを理解するまで、私は恐怖を覚えていた:
Uncaught TypeError: object is not a function
ちょうど私がExt.Loader.setPathを呼び出すことを忘れてしまったことを意味していました。
今すぐ次のビットで私を引用してはいけませんが、 Ext.require を実行すると、SimpleIFrame.jsがグローバル名前空間に読み込まれます。これはあなたが望むものではありませんが、まだ読み込まれていて動作します。
希望が役立ちます。そして、あなたは私が間違っている可能性が高いことを心に留めてください;)、私の場合はちょうど幸運になりました。何ができますか、私はまだn00bです。