Controladores de AppML


El propósito de un controlador AppML es permitirle controlar su aplicación.


¿Qué puede hacer un controlador?

  • Establecer datos iniciales
  • Cambiar datos de la aplicación
  • Manejar entrada y salida
  • Validar datos
  • Resumir datos
  • Manejar errores
  • Iniciar y detener aplicaciones
  • Y mucho más

Sin controlador

Por defecto, las aplicaciones AppML se ejecutan sin un controlador:

Ejemplo

<table appml-data="customers.js">
<tr>
  <th>Customer</th>
  <th>City</th>
  <th>Country</th>
</tr>
<tr appml-repeat="records">
  <td>{{CustomerName}}</td>
  <td>{{City}}</td>
  <td>{{Country}}</td>
</tr>
</table>

con un controlador

Con un controlador AppML, puede controlar su aplicación con JavaScript .

El controlador es una función de JavaScript, proporcionada por usted .

El atributo appml-controller se usa para hacer referencia a una función de controlador.

Ejemplo

<h1>Customers</h1>
<table appml-data="customers.js" appml-controller="myController">
  <tr>
    <th>Customer</th>
    <th>City</th>
    <th>Country</th>
  </tr>
  <tr appml-repeat="records">
    <td>{{CustomerName}}</td>
    <td>{{City}}</td>
    <td>{{Country}}</td>
  </tr>
</table>

<script>
function myController($appml) {
    if ($appml.message == "display") {
        if ($appml.display.name == "CustomerName") {
            $appml.display.value = $appml.display.value.toUpperCase();
        }
    }
}
</script>

El controlador (myController) en el ejemplo anterior, cambia el valor de "CustomerName" a mayúsculas, antes de que se muestre.

Si tiene un controlador, AppML enviará el objeto de la aplicación ($appml) al controlador, para cada acción importante.

Una de las propiedades de la aplicación es un mensaje ($appml.message), que describe el estado de la aplicación.

Message Description
ready Sent after AppML is initiated, and ready to load data.
loaded Sent after AppML is fully loaded, ready to display data.
display Sent before AppML displays a data item.
done Sent after AppML is done (finished displaying).
submit Sent before AppML submits data.
error Sent after AppML has encountered an error.

Los mensajes se explican en el próximo capítulo.