-
Notifications
You must be signed in to change notification settings - Fork 2
Expresiones
Documentación:
Las expresiones son sentencias JavaScript (acepta cualquier sentencia JavaScript válida en modo estrícto) que se pueden embeber dentro de una cadena, delimitadas por {...}
, para ser reemplazadas en forma dinámica por el resultado de su ejecución, siempre que su el mismo sea también una cadena o un número.
Un intérprete de expresiones permite ejecutar y reemplazar las expresiones en forma segura. Es posible utilizar el intérprete manualmente (ver JSDOC), pero la mayoría de las propiedades de los componentes, lo implementan automáticamente, de forma tal que se puedan embeber variables dinámicos entre los valores de las mismas.
Cuando se utilicen expresiones en controladores de eventos, si la expresión resuelve a una función, esta será ejecutada al producirse el evento. Por ejemplo: {aplicacion.funcion}
o {window.close}
(sin paréntesis). Pero si la expresión invoca una función, la misma será ejecutada al momento de evaluarse la expresión, tomando como controlador del evento el resultado de la llamada. Por ejemplo {aplicacion.funcion()}
(con paréntesis).
Importante: Cuando se trabaja con funciones (por ejemplo, una expresión
{controlador.miFuncion}
la cual devolvería dicha función para ser utilizada en el evento), la expresión queda limitada a miembros separados por puntos. Siguiendo el ejemplo,{controlador['miFuncion']}
es equivalente pero la evaluación de la expresión fallaría.Esto no aplica cuando se trabaja con el resultado de funciones. Por ejemplo
{controlador['miFuncion']()}
(nótese los paréntesis) funcionaría sin problemas, dado que el resultado de la expresión será el valor de retorno. Sin embargo, debe tenerse en consideración el valor dethis
(cuando se ejecute el evento,this
seráWindow
y puede causar problemas).
Las expresiones se definen encerradas entre llaves {...}
y tienen acceso al ámbito global y a variables locales específicas.
Notas:
- Las llaves pueden escaparse con
\
.- Una cadena puede contener texto y expresiones, como así también múltiples expresiones, por ejemplo:
"Hola {objeto.nombre}"
.- Si el valor de una propiedad es únicamente una expresión, igual requiere las llaves (
"{expresion}"
).
Los siguientes símbolos están definidos en todas las expresiones:
- Variables globales, como
ui
,util
,window
odocument
. -
nulo
,verdadero
ov
,falso
of
. -
aplicacion
Instancia del controlador de la aplicación. -
parametros
Parámetros de la URL (GET). -
controlador
Instancia del controlador de la vista. -
principal
Instancia del controlador de la vista principal. A diferencia decontrolador
, cuando se trabaje con vistas embebibles, este será siempre el de la vista principal. -
componentes
Instancias de los componentes de la vista principal.
Los siguientes símbolos están definidos en las expresiones dentro de propiedades de componentes:
-
obj
uobjeto
, ver a continuación. -
val
ovalor
El valor actual del componente, si corresponde (campos, Buscador). -
componente
Instancia del componente. -
controlador
ycomponentes
Corresponderán siempre a la vista a la que pertenece el componente (recordemos que puede existir más de una vista a la vez).
En los componentes que trabajen con un origen de datos, obj
u objeto
tendrá asignado el mismo. En aquellos que funcionen como bucles (Tabla, Bucle, Buscador, Desplegable, Árbol), obj
/ objeto
será el elemento que se esté dibujando, es decir, por ejemplo, una fila de la tabla, o un item del conjunto de resultados.
¿Probaste Foxtrot? Contanos qué te pareció 🥰 [email protected]
Índice
Primeros pasos
Gestor de aplicaciones
Editor de vistas
Componentes
Módulos
Comunicación cliente<->servidor
Modelo de datos - ORM
PHPDOC
JSDOC
☝ Comentarios
🤷♂️ Dudas
🤓 Ayuda
⌨ Contribuciones
Escribinos: [email protected]