2017-07-25 224 views
0

我得到了一個使用Sencha的ExtJS框架的項目,沒有移交或文檔。我試圖去處理它,但希望人們可以幫助我以下語法,並可能指向一個特定的網站,可能會解釋這一點,以及查找代碼爲這個框架的新手。瞭解ExtJS框架語法

我一直在經歷的代碼,並不能確定它到底是什麼做的,即:

if(val==1) { 
     Ext.getCmp('status').setText('AWAITING APPROV'); 
    } 
    switch(flag) { 
     case 1: if(val==0) { 
        Ext.getCmp('complex_first').el.replaceCls('x-form-complex', 'x-form-simplex'); 
       } else { 
        Ext.getCmp('complex_first').el.replaceCls('x-form-simplex', 'x-form-complex'); 
       } 
       break; 
     case 2: if(val==0) { 
        Ext.getCmp('complex_second').el.replaceCls('x-form-complex', 'x-form-simplex'); 
       } else { 
        Ext.getCmp('complex_second').el.replaceCls('x-form-simplex', 'x-form-complex'); 
       } 
       break; 
    default: break; 
    } 

現在我知道jQuery的非常舒服,所以可以用來比較ExtJS的,但究竟有以下改進:

  1. Ext.getCmp( '狀態')
  2. Ext.getCmp( 'complex_first')el.replaceCls( '×外形複雜', 'X-型單純形');
  3. Ext.getCmp('complex_first')。el.replaceCls('x-form-simplex', 'x-form-complex');

這些類/ div ids是代碼或CSS文件中提供更多信息的東西嗎?

任何幫助將是偉大的。

+0

您能否在您的應用程序中寫入Ext版本?這可能很重要。您可以在應用程序控制臺中使用「Ext.versions」進行檢查。 – pagep

+0

https://stackoverflow.com/documentation/extjs我不知道這裏的任何東西可能有幫助... – JGFMK

回答

2

在Ext JS應用程序中,Ext.Component(網格,面板,表單項等)子頁面上的所有內容都使用靜態Ext.ComponentManager註冊。

這提供了一種簡單的方法來以編程方式檢索對這些組件的引用並對它們執行操作,而無需運行潛在的複雜DOM查詢。

Ext.getCmp()是Ext.ComponentManager.get()一個別名,所以,在你的榜樣,Ext.getCmp(「狀態」)將獲取其ID爲狀態創建的組件。您將能夠在代碼庫中找到對此的引用。

一個組件,只有在呈現後,獲得Ext.dom.Element對象,允許您與DOM元素進行交互。這可以通過.getEl()或直接訪問.el屬性來訪問。 Element對象的提供更多的方法與DOM交互,提供跨瀏覽器順應性等。(廣義上等同於jQuery的元件)

replaceCls()將交換或在DOM添加的類。

我會建議創建一個示例應用程序,以在嘗試破譯潛在複雜的代碼庫之前掌握核心Ext JS概念。

1

docs都不錯。確保查找與您的項目相匹配的版本和工具包。除文檔外,您還可以單擊頁面頂部的「查看源代碼」或屬性/方法級別查看該類或其成員的源代碼。在右列中列出了類層次結構,所有子類,mixin等。

Ext.getCmp按id查找Ext.Component。這將返回組件實例,它是一個Ext對象。您的代碼傳遞給此方法的字符串('status','complex_first','complex_second')應該與給JS代碼中的組件的id匹配。它也將是渲染時給底層DOM元素的id。

組件的當前版本文檔沒有列出屬性el,但是如果您返回到version 3.4,則會發現它。它返回一個Ext.dom.Element的實例,它是表示組件的頂級DOM元素的包裝。目前支持的方式是致電getEl。但是,如果您查看當前版本的source,則會看到它正在返回.el屬性。因此,財產仍然在幕後。

replaceClsExt.dom.Element的一種方法,它將該元素上的一個或多個CSS類替換爲其他類。