Extjs 5.Ext.la aplicación no es una función.Por qué?
Pregunta
Me da un error en la consola: Ext.application is not a function
.Mi index.html
el archivo contiene este código:
...
<link rel="stylesheet" type="text/css" href="/ext-5.0.1/packages/ext-theme-neptune/build/resources/ext-theme-neptune-all.css" />
<script src="/ext-5.0.1/ext-all-debug.js"></script>
<script type="text/javascript" src="app.js"></script>
...
Mientras app.js
acaba de este código, tomado de una demo:
Ext.application({
name: 'AM',
appFolder: 'app',
launch: function() {
Ext.create('Ext.container.Viewport', {
layout: 'fit',
items: [{
xtype: 'panel',
title: 'Users',
html : 'List of users will go here'
}]
});
}
});
EDITAR
Por el camino, incluso la ejecución de "oficial" /ext-5.0.1/examples/app/simple/simple.html
Me sale el mismo error.¿Por qué es eso?
Solución
Envuelva la llamada a Ext.application
dentro de un Ext.onReady
el bloque.
// app.js
Ext.onReady(function() {
Ext.application({
name: 'AM',
appFolder: 'app',
launch: function() {
Ext.create('Ext.container.Viewport', {
layout: 'fit',
items: [{
xtype: 'panel',
title: 'Users',
html : 'List of users will go here'
}]
});
}
});
})
La razón de esto es necesario, por CIERTO, es que el ext-all-debug.js los archivos no contenga todos los de ExtJS.Contiene el código de inicio - el código que sabe cómo conseguir todo lo demás.Parte de ese "todo lo demás" es el código de la aplicación.Así hasta que tuvo la oportunidad de correr, Ext.la aplicación no existe.
El portal de ejemplo que mencionas funciona porque se utiliza el resultado de un sencha app build
- la microloader.js
.Esto carga una versión completa de ExtJS (o más bien, las partes usadas en la aplicación), y por lo tanto Ext.la aplicación ya está definido por el tiempo en que se usa.(Lo mismo pasa con Sencha Violín - no se necesita la Ext.onReady allí)
Otros consejos
en lugar de
<script src="/ext-5.0.1/ext-all-debug.js"></script>
debe usar
<script src="/ext-5.0.1/build/ext-all-debug.js"></script>
El segundo contiene todos los componentes y clases como se espera.