2011-03-11 8 views
1

私はJavascript/Ext-JSを学ぶのに苦労しています。私はセットアップSpketは、しかし、のような例えば、Eclipseのいくつかのコード補完のためにあるプラグイン私はこのようなコードの一部を見たら....Ext-JSコードをナビゲートするには?

Ext.ComponentMgr.get('communicationName').findById('showBannerId').add(
{ 
    xtype : 'displayfield', 
    id : 'bannerField', 
    value : banners, 
    autoHeight : true, 
    width : 1000 
}); 

Spketはので、私はできませんに.get赤を強調しますコードは、さらにget()を完了します。 showBannerId(私が見つけたのはテーブルでした...それはレイアウトを持っていました: 'テーブル'のメンバー)を探してみてください。 Ext-JS APIで、このExt-JSメンバーに「追加」というメソッドがあることが分かりましたか?

**私は、コードのこの作品で探しています理由の側注:

基本的に私はこのshowBannerIdが継続的にこれらのdisplayFieldsを追加していないことを確認する必要があります。 ID bannerFieldは見るためにチェックする必要があります。

それが存在する-if(私はちょうどを考え出し)Ext.get( 'bannerField');

- 存在する場合は、displayField ...編集してください。再作成しないでください。その属性を編集するにはどうすればいいですか(xtypeディスプレイフィールドのsetValueメソッドを調べる)

うまくいけば、これは理にかなっています...私が明確でないかどうか教えてください。

+0

あなたの特定の質問に答えるには(つまり、 'showBannerId'が継続的に呼び出されないようにする方法)、より詳細な情報が必要です。 – NT3RP

答えて

1

リソース

ExtJS DocumentationExamplesはExtJSにに関する情報のごナンバーワンソースであるべき。

発見方法/オブジェクトあなたの特定のケースで

は、どのように問題の要素がadd方法があったことを知っているだろうか?基本的には、ドキュメント内で呼び出す関数と、それらが返すと予想される関数を調べる必要があります。たとえば、Ext.ComponentMgr.getに電話をかけます。ドキュメントでは、Ext.Componentを返します。しかし、注目すべき点は、Ext.Componentから継承する多くのExtJSオブジェクトがあることです(実際には、ほとんどのオブジェクトは継承しています)。プログラム

、あなたは何か、コンポーネントの特定のタイプ(Ext.Componentドキュメントがxtypesとそれに対応するクラスのリストを持っている)であることを確認するためにgetXType、またはisXType(type)を呼び出すことにより、Ext.Componentの実際の型を決定することができます。あなたが書いたことに基づいて、あなたがどのようなコンポーネントを持っているか知りたいのであれば、問題のID(つまりshowBannerId)のソースコードを見て、それがどのように宣言されているかを見る方が良いかもしれません。どのオブジェクトがその一部として宣言されているか。

あなたの特定の質問

は、あなたがしたい場合は...

  • フィールドが存在するかどうかを確認します。それは

をした場合と

  • 編集して、次のコードは、あなたの助けになります:Ext.getとは対照的に、私は(Ext.componentを取得する)Ext.getCmpを使用

    var elem = Ext.getCmp("bannerField") //Shorthand for Ext.ComponentMgr.get 
    //check if a field exists: 
    if(!Ext.isEmpty(elem)) { 
    
        //make sure it is the right type 
        if(elem.isXType('displayfield')) { 
         elem.setValue(banners) //since we know this is an Ext.form.DisplayField component 
        } 
    
    } else { 
        //element does not exist, so add it 
        Ext.ComponentMgr.get('communicationName').findById('showBannerId').add({ 
         xtype : 'displayfield', 
         id : 'bannerField', 
         value : banners, 
         autoHeight : true, 
         width : 1000 
        }); 
    } 
    

    注意(これExt.Elementを取得します(基本的にDOMオブジェクトのラッパー)。あなたはExtJSにして作業するための良いツールを探しているなら、私は生で見ているよりも簡単にIlluminationを見て、あなたはExtJSには、オブジェクトを覗くことができます放火犯の拡張子を取ってお勧めします

    ツール

    JavaScriptオブジェクト。もしあなたがjavascriptとExtJSの良いIDEサポートを探しているなら...それはまったく別の質問です! IDEでのjavascriptのサポートは一般的にあまり良くありません。

  • +0

    情報ありがとう! APIのExt.Component内にaddメソッドが表示されていませんが、正しく表示されていない場合を除きます。 –

    +0

    あなたは正しく見ています...私はちょうど詳細を無視しました(私は編集に含まれます) – NT3RP

    +0

    ちょっと私の質問をちょっと微調整しました。もう一度助けてくれてありがとう。 –