extjs4ファイルを関連バンドルに分割する方法

extjs4フロントエンドを持つsymfony 2プロジェクトがあります。私は今extjsアプリケーション全体を含むextjsバンドルから始めました。問題は、プロジェクトが成長するにつれて管理が難しいことです。

私は、最高の解決策は、すべてのextjsファイルを関連バンドルに再配置することだと思います。 (例:すべてのフォーム、パネル、グリッドなどのUserBundleに)、中央のExtjsバンドルを使用してそれらをロードします。

この方法でプロジェクトを編成するベストプラクティスは何ですか?
   別のバンドルからjsファイルをインクルードする方法は?
      または、私はすべてのバンドルにextjsアプリケーションを作成する必要があります(私はそれが賢明だろうとは確信していません)?

2

2 答え

私はこれがベストプラクティスであるかどうかはわかりませんが、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です。

1
追加された

それぞれのResources/public/js内のJSファイルとバンドルを分けることができます。

その後、あなたのメインのHTMLテンプレートにasseticを使ってすべてのJSファイルを含めることができます。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript