Professional Documents
Culture Documents
com>
Definiendo el xtype
Si has trabajado con la versin 3 de ExtJS ya sabrs lo que significa el xtype, pero en pocas palabras el xtype es un alias para definir componentes en de manera literal, por ejemplo: Ext.define("Bleext.training.Teacher",{ extend : "Ext.panel.Panel", alias : "widget.teacher" // ... }); En la clase anterior usamos la propiedad alias para definir el xtype de la clase, a diferencia de Ext3 en esta versin se le asigna un prefijo, este prefijo es widget para el caso de cualquier clase que herede directa o indirectamente de Ext.Component, existen varios prefijos para los diferentes componentes que existen dentro del framework.
Prefijos en el xtype
Para identificar cuales prefijos estn disponibles podemos ejecutar el siguiente cdigo: var prefix = {}, values = []; Ext.Object.each(Ext.ClassManager.maps.aliasToName,function(key,value){ var px = key.split(".")[0]; if(!prefix[px]){ prefix[px] = px; values.push(px); } }); console.log(values); La clase ClassManager es la responsable de la creacin de clases, es por eso que aqu estn definidos los alias de todas las clases que existen en el framework. El resultado del cdigo anterior es lo siguiete: [layout,writer,data,reader,proxy,widget,axis,store,series,association,direct,state,formaction,feature, editing,plugin,selection] Bsicamente el prefijo sirve para agrupar las clases, de esta manera podemos tener un xtype store.teacher y otro widget.teacher, la diferencia es el prefijo.
//Usando el xtype
Es importante notar que al instanciar la clase Teacher no estamos usando el prefijo, esto es porque hereda de Ext.Component (indirectamente) y todos los componentes utilizan el prefijo widget por lo tanto no es necesario usar el prefijo. Tambin podemos usar el mtodo widget de la siguiente manera: var susan = Ext.widget("teacher",{ title : "Susan Smith", html : "I'm a teacher" }); var p = Ext.create("Ext.panel.Panel",{ width : 300, height : 400, items : [{ xtype : "teacher", //Usando el xtype title : "John Doe", html : "I'm a teacher!" }, susan //agregamos la instancia susan al contenedor que ya teniamos ], renderTo : Ext.getBody() });
Conclusin
Al definir un alias a la clase que escribimos podemos instanciarla ms adelante con el alias que le asignamos, esto nos evita escribir algunas lneas extra de cdigo y definir los componentes ms rpido.
EspaouilQzt unsbcriowe .
EmaildepogvrywbG