2012-05-02 14 views
5

私はSencha Architect 2を使用しています。私は、テキスト検索とその結果を表示するテーブルで一般的なUI要素を生成しようとしています。一般的な意味は、いくつかの異なるタイプの検索に使用することです。ユーザー、ロール、またはまだ何か他のもの。ExtJS4:initComponentに引数を渡す方法

Sencha Architect 2についてこの文脈で私が間違いなく好むものは、常にクラスを生成することです。ここに私の生成されたクラスです。

Ext.define('ktecapp.view.ObjSearchPanel', { 
    extend: 'Ext.container.Container', 
    alias: 'widget.objsearchpanel', 

    height: 250, 
    id: 'UserSearchPanel', 
    itemId: 'UserSearchPanel', 
    width: 438, 
    layout: { 
     columns: 3, 
     type: 'table' 
    }, 

    initComponent: function() { 
     var me = this; 

     Ext.applyIf(me, { 
      items: [ 
       { 
        xtype: 'textfield', 
        itemId: 'txtSearchText', 
        fieldLabel: 'Search Text', 
        colspan: 2 
       }, 
       { 
        xtype: 'button', 
        id: 'searchObj', 
        itemId: 'searchObj', 
        text: 'Search', 
        colspan: 1 
       }, 
       { 
        xtype: 'gridpanel', 
        height: 209, 
        itemId: 'resultGrid', 
        width: 430, 
        store: 'UserDisplayStore', 
        colspan: 3, 
        columns: [ 
         { 
          xtype: 'gridcolumn', 
          width: 60, 
          dataIndex: 'ID', 
          text: 'ID' 
         }, 
         { 
          xtype: 'gridcolumn', 
          width: 186, 
          dataIndex: 'DISPLAYNAME', 
          text: 'Displayname' 
         }, 
         { 
          xtype: 'gridcolumn', 
          width: 123, 
          dataIndex: 'JOBTITLE', 
          text: 'Job Title' 
         }, 
         { 
          xtype: 'actioncolumn', 
          width: 35, 
          icon: 'icons/zoom.png', 
          items: [ 
           { 
            icon: 'icons/zoom.png', 
            tooltip: 'Tooltip' 
           } 
          ] 
         } 
        ], 
        viewConfig: { 

        }, 
        selModel: Ext.create('Ext.selection.CheckboxModel', { 

        }) 
       } 
      ] 
     }); 
     me.callParent(arguments); 
    } 
}); 

私が午前問題はすべてが列、店舗のdataIndexes、... は、どのように私はのための機能のようなコンストラクタを取得することができ、かなりカスタマイズする必要があるということですObjSearchPanelクラスでその情報をすべて渡しますか?ときに、すべてのこの上記のコードでは、事前に

おかげ 甲斐

(ExtJSの4で)実際に

答えて

4

...ほとんどのハードコードになります設定オブジェクトをコンストラクタに渡すと、この設定オブジェクトはthis.initialConfig変数に割り当てられ、クラスの他の関数でも使用できます。したがって、initComponentで使用できます。

コードは、initComponentのクラスの中でこのExt.apply(this, Ext.apply(this.initialConfig, config));のようなExtJS 3.3で見つけることができます。しかし、これはExtJS 4の文書にはないので、あなた自身の責任でそれを使用してください、ソースコード内でしか見つかりませんでした。

+0

+1意味があります:) – A1rPun

8

使用の設定、

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.Class-cfg-config

Ext.define('SmartPhone', { 
    config: { 
     hasTouchScreen: false, 
     operatingSystem: 'Other', 
     price: 500 
    }, 
    constructor: function(cfg) { 
     this.initConfig(cfg); 
    } 
}); 

var iPhone = new SmartPhone({ 
    hasTouchScreen: true, 
    operatingSystem: 'iOS' 
}); 

iPhone.getPrice(); // 500; 
iPhone.getOperatingSystem(); // 'iOS' 
iPhone.getHasTouchScreen(); // true; 
iPhone.hasTouchScreen(); // true     
+0

あなたの回答は役に立ちますが、設定全体ではなく不完全な情報を提供したい場合は、提案方法を使用できません。 – kaidentity

+0

+1は私のために働いた:) – 1Mayur

関連する問題