Controladores AppML


A finalidade de um controlador AppML é permitir que você controle seu aplicativo.


O que um controlador pode fazer?

  • Definir dados iniciais
  • Alterar dados do aplicativo
  • Manipular entrada e saída
  • Validar dados
  • Resumir dados
  • Lidar com erros
  • Iniciar e parar aplicativos
  • E muito mais

Sem controlador

Por padrão, os aplicativos AppML são executados sem um controlador:

Exemplo

<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>

Com um controlador

Com um controlador AppML, você pode controlar seu aplicativo com JavaScript .

O controlador é uma função JavaScript, fornecida por você .

O atributo appml-controller é usado para se referir a uma função do controlador.

Exemplo

<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>

O controlador (myController) no exemplo acima, altera o valor de "CustomerName" para maiúscula, antes de ser exibido.

Se você tiver um controlador, o AppML enviará o objeto do aplicativo ($appml) ao controlador, para cada ação importante.

Uma das propriedades do aplicativo é uma mensagem ($appml.message), descrevendo o estado do aplicativo.

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.

As mensagens são explicadas no próximo capítulo.