2011-07-11 7 views
1

特定の例は、一連のタブを有する「プリファレンス」ウィンドウであり、各タブは一連のフォームフィールドを含む。これらのタブやフォームフィールドは、ウィンドウの外で再利用されることはなく、ウィンドウ自体のインスタンスは1つしかありません。 1つのアイテムの設定を使用すると、数百行になるので、保守が難しくなります。非常に長いExtJSアイテム設定を整理するための良いアプローチは何ですか?

My.Ns.PreferencesWindow = Ext.extend(Ext.Window, { 

    items: [ 
     // A tab 
     { 
      items: [ 
       // Form fields 
       {}, 
       {}, 
       {}, 
      ] 
     }, 
     // A tab 
     { 
      items: [ 
       // Form fields 
       {}, 
       {}, 
       {}, 
      ] 
     }, 
     ... 
    ] 
}); 
  • 私は大のExtJSアプリケーションを整理する方法を求めていないのです。私はBest Way to Organize an ExtJS ProjectSaki's blog posts on the topicと読みました。
  • 各アイテムのExt.extendは実際には複数回インスタンス化されないため意味がありません。
  • アイテムのjsonを返す「ジェネレータ」関数内のさまざまなコンポーネントをカプセル化することは、一見すると合理的なアプローチに見えます。

答えて

2

ちょうどそれを読みやすくするために、変数を使用します。

var tabOneCfg = { 
    items: [ 
     // etc. 
    ] 
}; 

var tabTwoCfg = { 
    items: [ 
     // etc. 
    ] 
}; 

My.Ns.PreferencesWindow = Ext.extend(Ext.Window, { 
    items: [ 
     tabOneCfg, 
     tabTwoCfg 
    ] 
}); 

あなたが好きな粒状としてそれを作る、とさえ別々のファイルにサブコンフィグを含めることができる(スキームのそのタイプではないだろうがExt 4でのダイナミックローディングでうまくいく)。コンフィギュレーションの性質によっては、ジェネレータやファクトリ関数も意味をなさない可能性があります。原則としてどちらの方法でも同じです。サブconfigsを小さなチャンクに分割し、必要に応じて使用してください。

+0

ありがとうbmoeskau。それは私が考えていたラインに沿っている。私は+1しましたが、私はいくつかのアイデアを引き出したいので、今は答えとして受け入れていません。 –

+0

これはやや良いですが、ファイルサイズが数百行になるという問題は解決していません。 – sym3tri

+0

@ sym3tri、あなたは私の答えを読んだのですか? 「サブconfigを個別のファイルに含めることさえできます」それはJavaScriptです。物事が適切な順序で定義されている限り、それらを定義する物理ファイルの数は関係ありません。配備のために1つのファイルを作成する必要があります。 –

関連する問題