2011-03-11 46 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()。除了試圖尋找showBannerId(我發現它是一個表...它有佈局:'表'成員)。在Ext-JS API中,我能發現這個Ext-JS成員有一個叫做'add'的方法嗎?爲什麼我在看這段代碼的

**側面說明:

基本上我需要確保這個showBannerId不會不斷添加這些displayFields。該ID bannerField應檢查看看:

- 如果它存在(我只是想出了)Ext.get( 'bannerField');和

- 如果它存在,那麼它應該只編輯displayField ...不重新創建它。如何編輯其屬性(研究xtype displayfield的setValue方法)

希望這是有道理的......讓我知道如果我不清楚。

+0

爲了回答您的具體問題(即如何防止不斷調用showBannerId),需要更多詳細信息。 – NT3RP

回答

1

資源

ExtJS DocumentationExamples應該是有關的ExtJS的信息,你的頭號來源。

發現的方法/對象

你的具體情況,你怎麼會知道有問題的元素有一個add方法?您基本上必須查看您在文檔中調用的函數以及它們預期返回的內容。例如,你可以撥打Ext.ComponentMgr.get。在文檔中,這返回Ext.Component。值得注意的是,有很多從Ext.Component繼承的ExtJS對象(事實上,大多數對象都是從它繼承而來!)。

編程,可以通過調用getXType,或isXType(type)檢查的東西是某種類型的組件確定的實際類型的Ext.Component的(該Ext.Component文檔有xtypes名單及其相應的類)。根據你寫的內容,如果你想知道你有什麼樣的組件,你最好查看你的源代碼中的id(例如showBannerId),看看它是如何聲明的,或者它被聲明爲什麼對象的一部分。

您的具體問題

如果你想...

  • 檢查字段是否存在;和
  • 編輯它,如果它確實

下面的代碼將是對您有所幫助:

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.getCmp(其獲得的Ext.component),而不是Ext.get(其得到一個Ext.Element;本質上,一個DOM對象的包裝)。

工具

如果您正在尋找好的工具與ExtJS的工作,我建議考慮看看Illumination,一個Firebug擴展,使您可以窺視到ExtJS的物體更容易比看生javascript對象。如果您正在尋找對JavaScript和ExtJS良好的IDE支持......那是另一個問題!在IDE中對JavaScript的支持通常不是很好。

+0

感謝您的信息!儘管我沒有在API中看到Ext.Component中的add方法,除非我看起來不正確。 –

+0

您正在正確看待...我只是忽略了一個細節(我將在編輯中加入) – NT3RP

+0

嘿,我調整了一下我的問題......看看這是否更有意義。再一次感謝你的幫助。 –