En el artículo anterior de Biding Syntax, vimos los diferentes tipos de bindings que tenemos disponibles para usar en nuestras aplicaciones SAPUI5. En este artículo entraremos a ver en detalle opción del Expression Binding.
El Expression Binding está disponible a partir de la versión 1.28 de SAPUI5 y nos permite añadir cierta lógica a nuestros bindings sin tener que usar un formatter. La sintaxis que utiliza es parecida a la de JavaScript pero solo tendremos permitidas algunas acciones. Por ejemplo:
- Comparativas (==, ===, !=, !==, >, <, >=, <=)
- Operaciones aritméticas (+, -, *, **, /, %, ++, –)
- Ejecutar funciones. Siempre que estén disponibles vía “Global Symbols” como “parseFloat” o “isNaN”.
Para definir nuestra expresión tenemos dos opciones. Dependiendo del modo el tipo de binding cambiará:
- “{= expresión}”: Con esta opción el tipo de binding será “one-way”, esto permite que cuando el valor cambie en modelo se volverá a ejecutar la expresión.
- “{:= expresión}”: Con esta opción en cambio el tipo de binding utilizado será “one-time”. La expresión se ejecutará la primera vez y aunque cambie el valor del modelo está no se volverá a ejecutar.
Para acceder a cualquier dato de la capa del modelo mediante el binding, deberemos usar las siguientes opciones de sintaxis “${binding}” o “%{binding}”.
Por último, veremos algunos ejemplos de cómo utilizar el Expression Binding en una vista XML.
<Text text=”{= ${Aprobado} === true ? ${i18n>si} : ${i18n>no}}”/> |
<Text text=”{= Math.round(${Precio})}”/> |
<ObjectStatus text=”{IdDocumento}” state=”{= RegExp(‘[0-9]{8}[A-Z]’).test(${IdDocumento}) === false ? ‘Error’ : ‘None’}”/> |
Y con estos ejemplos prácticos, finaliza este post que esperamos que te resulte de utilidad. Recuerda que cualquier duda puedes dejarla en comentarios, o contactar con nuestro departamento de user experience & integración.