1

具体的な例は、一連のタブがあり、各タブに一連のフォームフィールドが含まれている「設定」ウィンドウです。これらのタブやフォームフィールドはいずれもウィンドウの外で再利用されることはなく、ウィンドウ自体のインスタンスは1つだけです。単一アイテム構成を使用すると、数百行の長さになり、保守が困難になります。

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

    items: [
        // A tab
        {
            items: [
                // Form fields
                {},
                {},
                {},
            ]
        },
        // A tab
        {
            items: [
                // Form fields
                {},
                {},
                {},
            ]
        },
        ...
    ]
});
  • 大規模なExtJSアプリケーションを編成する方法を尋ねているのではありません。ExtJSプロジェクトを整理するための最良の方法とこのトピックに関するSakiのブログ投稿を読みました。
  • 各アイテムのExt.extendは、複数回インスタンス化されることはないため、実際には意味がありません。
  • アイテムのjsonを返すだけの「ジェネレーター」関数にさまざまなコンポーネントをカプセル化することは、一見合理的なアプローチのように思われます。
4

1 に答える 1

2

変数を使用して読みやすくします。

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

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

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

必要に応じて細かく設定でき、サブ構成を個別のファイルに含めることもできます(ただし、このタイプのスキームは、Ext 4での動的ロードではうまく機能しません)。構成の性質によっては、ジェネレーターまたはファクトリ関数も意味があります。原則として、どちらの方法でも同じです。サブ構成を小さなチャンクに分割し、必要に応じて使用するだけです。

于 2011-07-11T15:23:45.367 に答える