2011-08-19 9 views
5

Así, int ExtJS tenemos:Lo alternateClassNames destinados a

  • "verdadero" nombre de tipo (aquel que va como primer parámetro en Ext.define)
  • alias
  • alternateClassName
  • xtype

Lo más enigmático para mí es alternateClassName. ¿Por qué los necesitamos realmente si ya tenemos un zoológico de descriptores de tipo? Tenga en cuenta que no estoy tratando de discutir la calidad del enfoque ideológico. La pregunta es solo acerca de por qué esto se implementó y para qué exactamente.

Respuesta

8

Se utilizan para la compatibilidad con versiones anteriores. Por ejemplo, Ext.grid.Panel en ExtJS 4 tiene

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

porque reemplaza ListView y se utiliza para ser nombrado Ext.grid.GridPanel.

2

Según lo que sé, alternateClassName es útil para llamar a una clase con diferentes nombres y podemos usar las acciones según el nombre de la clase.

El código siguiente será útil para usted:

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'); 

En el código anterior, se pueden encontrar las cosas como:

1.We están utilizando tres nombres llamados Muestra, Ejemplo, para Importante una clase.
2. Podemos usar la acción, es decir, un mensaje de alerta según el nombre de la clase.
3. Estamos mostrando el mensaje de alerta basado en el nombre de la clase. Aquí mostramos el mensaje de alerta para mostrar el resultado. Pero podemos escribir algunas acciones de acuerdo con el nombre de la clase como, si queremos crear un botón y necesita escribir acción en el botón según el nombre de la clase, entonces esto será útil.

Usted puede fint la muestra de trabajo a continuación:

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

+0

En realidad, usted está explicando cómo funciona desde un punto técnico, pero no explica, ¿por qué deberíamos tener N nombres de la misma clase. – shabunc

+0

Puede reutilizar el código según su deseo. Según lo sé, por ejemplo, si la barra de herramientas y un botón están en dos pestañas, pero necesito escribir el botón haciendo clic en la ficha activa. En ese momento podemos usar este método. – Unknown

+0

respuesta tardía pero alternateClassName se puede utilizar para señalar funciones singleton, taquigrafía, por lo que no tiene que apuntar a la ruta donde se definieron los singleton acortando la invocación de invocación de función – Chris

0

alias

Un alias consta de un espacio de nombres y un nombre concatenado por un período como [espacio de nombres]. [Nombre]

Debido al espacio de nombres, su uso está restringido al contexto, por ejemplo, widget, tienda, controlador, etc. (por ejemplo, para una clase derivada de controlador puede usar un alias como "controller.foo", y ahora puede usar solo el nombre "foo" cuando se conecta el controlador a una vista)

xtype

Solo se aplica a Ext.clases de componentes derivados

útil en la definición de puntos de vista ya que escribe menos código

alternateClassName

propósito más general que por encima de dos. puede utilizar esto para sus clases de utilidad, por lo que no tiene que hacer referencia a todo el espacio de nombres

Para una clase singleton utilizado para almacenar constantes declaradas como app.util.navigationConstants, se puede definir un nombre de la clase que se alternan es más corto, NavConsts. Y ahora podría usar NavConsts.CONST_NAME en lugar de app.util.navigationConstants.CONST_NAME

Cuestiones relacionadas