Utilizar funciones de un archivo externo en Sencha Touch 2
Buenas tardes, esta es la situación:
Tengo una app (es una simple cuenta atras), donde utilizo unas funciones que estan en el mismo archivo.
Quiero poner esas funciones en un archivo externo (funciones.js por ejemplo) y utilizarlas en Main.js.
¿Como puedo hacer eso?
Este es el codigo de Main.js
Tengo una app (es una simple cuenta atras), donde utilizo unas funciones que estan en el mismo archivo.
Quiero poner esas funciones en un archivo externo (funciones.js por ejemplo) y utilizarlas en Main.js.
¿Como puedo hacer eso?
Este es el codigo de Main.js
Ext.define('temporizador.view.Main',
{
extend: 'Ext.Container',
xtype: 'main',
requires:
[
],
config:
{
items:
[
{
xtype: 'label',
html: '5',
flex: 1,
id: 'tsegundos'
},
{
xtype: 'label',
html: 'seg',
flex: 1
},
{
<!-- Barra con botones -->
xtype: 'toolbar',
docked: 'bottom',
items:
[
{
xtype: 'button',
text: 'Iniciar',
ui: 'confirm',
id: 'btniniciar',
listeners:
{
tap: function(e)
{
var boton = Ext.getCmp('btniniciar')
var nuevoSeg = boton.getText()
var segundos = Ext.getCmp('tsegundos')
var tiempoSeg = segundos.getHtml()
function empezar()
{
if (nuevoSeg == 'Iniciar')
{
eltemp = setInterval(tiempo,1000)
}
}
function tiempo()
{
tiempoSeg = tiempoSeg - 1
segundos.setHtml(tiempoSeg)
if (tiempoSeg == 0)
{
clearInterval(eltemp)
boton.setText('Iniciar')
boton.setUi('confirm')
}
}
function parar()
{
if(nuevoSeg == 'Detener')
{
clearInterval(eltemp)
}
}
if (boton.getText() == 'Iniciar')
{
if(tiempoSeg != '0')
{
boton.setText('Detener')
boton.setUi('decline')
empezar()
}
}
else
{
boton.setText('Iniciar')
boton.setUi('confirm')
parar()
}
}
}
},
{
<!-- Boton de Restablecer -->
xtype: 'button',
text: 'Restablecer',
ui: 'normal',
listeners:
{
tap:function(e)
{
var segundos = Ext.getCmp('tsegundos')
segundos.setHtml('5')
}
}
}
]
}
]
}
});
Hola Oacmanu.
Depende de como estes definiendo tu aplicación, si estas usando el Sencha CMD tendrias que definir en el app.json el path del archivo JS que quieres cargar y listo, el microloader lo agregara al html y podras usar las funciones sin problema.
Si no estas usando el Sencha CMD te recomendaria crear una clase para definir tus funciones ahi, y luego usar el Ext.Loader para requerir la clase de utilierias a las clases donde la necesites.
Saludos
Depende de como estes definiendo tu aplicación, si estas usando el Sencha CMD tendrias que definir en el app.json el path del archivo JS que quieres cargar y listo, el microloader lo agregara al html y podras usar las funciones sin problema.
Si no estas usando el Sencha CMD te recomendaria crear una clase para definir tus funciones ahi, y luego usar el Ext.Loader para requerir la clase de utilierias a las clases donde la necesites.
Saludos
Gracias por la ayuda, pero no consigo hacer que llame a la funcion:
He añadido el archivo a app.json:
El contenido de funciones.js es el siguiente:
y asi es como la llamo en Main.js:
El error que me da es: Uncaught ReferenceError: mostrar is not defined
¿Que error estoy cometiendo?
He añadido el archivo a app.json:
{
"path": "app/controller/funciones.js",
"x-bootstrap": true,
"update": "delta"
}
El contenido de funciones.js es el siguiente:
mostrar: function()
{
var label = Ext.getCmp('label')
label.setHidden(false)
}
y asi es como la llamo en Main.js:
mostrar()
El error que me da es: Uncaught ReferenceError: mostrar is not defined
¿Que error estoy cometiendo?
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.