2011-08-19 37 views
5

所以什麼alternateClassNames,詮釋ExtJS的有:旨在爲

  • 「真實」 的類型名稱(即一個雲作爲第一個參數中Ext.define
  • 別名
  • alternateClassName
  • 的xtype

對我來說最神祕的是alternateClassName。 爲什麼我們實際上需要它們,如果我們已經有這樣一個類型描述符的動物園? 請注意,我不是在討論思想方法的質量。 這個問題只是關於爲什麼這是實施和爲什麼目的。

回答

8

他們用於向後兼容。例如,在Ext.grid.Panel ExtJS的4具有

alternateClassName: ['Ext.list.ListView', 'Ext.ListView', 'Ext.grid.GridPanel'] 

,因爲它取代ListView和用於被命名爲Ext.grid.GridPanel。

2

按照我所知alternateClassName有助於調用一個具有不同名稱的類,我們可以根據類名使用這些操作。

下面的代碼將有助於你:

Ext.define('Sample', {  
    alternateClassName: ['Example', 'Important'],  
    code: function(msg) {   
     alert('Sample for alternateClassName... ' + msg);  
    }, 
    renderTo :document.body 
}); 
var hi = Ext.create('Sample'); 
hi.code('Sample'); 
var hello = Ext.create('Example'); 
hello.code('Example'); 
var imp = Ext.create('Important'); 
imp.code('Important'); 

在上面的代碼,你可以找到喜歡的東西:

1.我們使用的是三個名字叫樣品,實例,很重要的一個班級。
2.我們可以根據類名使用動作,即提醒消息。
3.我們正在顯示基於類名稱的警報消息。在這裏我們顯示了用於顯示結果的警報消息。但是我們可以根據類名寫一些動作,例如,如果我們想創建一個按鈕,而我們需要根據類名對按鈕編寫操作,然後這會很有幫助。

可以FINT下面的工作示例:

http://jsfiddle.net/kesamkiran/kVbra/30/

+0

實際上,您正在從技術角度解釋它是如何工作的,但不解釋爲什麼地球上應該有N個名稱同班。 – shabunc

+0

你可以根據你的願望重複使用代碼。據我所知,例如,如果工具欄和一個按鈕有兩個選項卡,但我需要編寫基於活動選項卡的按鈕單擊eent。那時候我們可以使用這種方法。 – Unknown

+0

遲到的答案,但alternateClassName可以用來指向單例函數,所以你不必指向路徑是單身定義的縮短函數調用的調用 – Chris

0

別名

別名由一個名稱空間,並通過一個週期爲[命名空間]。[名稱]

因爲命名空間的級聯的名稱,它的使用量被限制爲背景下,例如小部件,商店,控制器等(例如,對於控制器派生類,您可以使用別名,如「controller.foo」,並且當將控制器附加到視圖時,現在只能使用「foo」名稱)

xtype

只適用於分機。組件派生類定義視圖時,因爲你寫更少的代碼

alternateClassName

超過兩個以上的更通用的

有用。您可以使用此爲您的實用工具類,所以你不必引用整個命名空間

對於用於存儲聲明爲app.util.navigationConstants常量一個單獨的類,你可以定義一個備用類名NavConsts更短。您現在可以使用NavConsts.CONST_NAME,而不是app.util.navigationConstants.CONST_NAME

相關問題