Estoy usando extjs4 y necesito crear mis propios componentes en base a los que trae el framework (Ej: gridpanel, numberfield, panel, window, etc). Estoy usando la estructura MVC que proponen en la documentación y hasta el momento todo funciona bien. El problema está en;
Para usar los componentes creados por mí lo hago de la siguiente manera:
Código PHP:
//Codigo js de la view que se llama como ventana al hacer doble clic en la grid que muestra los registros (esa parte funciona bien)
...
xtype: 'form',
items: [
{
xtype: 'textfield',
name: 'name',
fieldLabel: 'Name'
},
//asi uso los componentes creados por mí
Ext.create('DirectivaApp.directiva.form.field.Number',{
name: 'edad',
fieldLabel: 'Edad',
minValue: 0
})
]
...
Código PHP:
//Codigo js
...
xtype: 'form',
items: [
{
xtype: 'textfield',
name: 'name',
fieldLabel: 'Name'
},
//Donde "dnumberfield" es el alias usado en la definición de mi clase (sin el widget; segun he visto en algunos articulos.)
{
xtype: 'dnumberfield',
name: 'edad',
fieldLabel: 'edad',
minValue: 0
}
]
...
Código PHP:
Ext.define('DirectivaApp.directiva.form.field.Number', {
extend: 'Ext.form.field.Number',
alias: 'widget.dnumberfield',
constructor: function() {
this.callParent(arguments);
}
});
Código PHP:
//Seteamos la imagen en blanco por defecto al directorio de nuestro proyecto
//Cargamos las librerias de "Directiva" para nuestro proyecto
Ext.Loader.setPath({
'DirectivaApp.directiva': 'gui/app/directiva/src'
});
//Render de la view
Ext.application({
name: 'DirectivaApp',
appFolder: 'gui/app',
controllers: [
'Users'
],
launch: function() {
Ext.create('Ext.container.Viewport', {
layout: 'border',
items:[{
region: 'west',
collapsible: true,
split: true,
title: 'Navigation',
width: 150
}, {
region: 'center',
xtype: 'tabpanel', // TabPanel itself has no title
activeTab: 0, // First tab active by default
items: {
xtype: 'userlist'
}
}
]
});
}
});
Uncaught TypeError: Cannot call method 'substring' of undefined
Saludos amigos y gracias por la ayuda