Mensagens AppML


Mensagens e ações do AppML

Quando o AppML está prestes a executar uma ação, ele envia o objeto de aplicativo ($appml) ao controlador.

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

Testar esta mensagem permite adicionar seu próprio código JavaScript, dependendo da ação.

Exemplo

function myController($appml) {
    if ($appml.message == "ready") {alert ("Hello Application");}
}

Mensagens AppML

Esta é uma lista de mensagens AppML que podem ser recebidas:

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.

A mensagem "pronta"

Quando um aplicativo AppML estiver pronto para carregar dados, ele enviará uma mensagem "pronto".

Este é o lugar perfeito para fornecer ao aplicativo os dados iniciais (valores iniciais):

Exemplo

<div appml-controller="myController" appml-data="customers.js">
<h1>Customers</h1>
<p>{{today}}</p>
<table>
  <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>
<p>Copyright {{copyright}}</p>
</div>

<script>
function myController($appml) {
    if ($appml.message == "ready") {
        $appml.today = new Date();
        $appml.copyright = "W3Schools"
    }
}
</script>

No exemplo acima, quando o $appml.message está "pronto", o controlador adiciona duas novas propriedades ao aplicativo ( today e copyright ).

Quando o aplicativo é executado, as novas propriedades ficam disponíveis para o aplicativo.


A mensagem "carregada"

Quando um aplicativo AppML é carregado com dados (pronto para exibição), ele enviará uma mensagem " loaded ".

Este é o lugar perfeito para fornecer alterações (se necessário) aos dados carregados.

Exemplo

function myController($appml) {
    if ($appml.message == "loaded") {
        // compute your values here before display
    }
}

A mensagem "exibir"

Cada vez que o AppML estiver exibindo um item de dados, ele enviará uma mensagem " exibir ".

Este é o lugar perfeito para modificar a saída:

Exemplo

<div appml_app="myController" appml-data="customers.js">
<h1>Customers</h1>
<table>
  <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>
</div>

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

No exemplo acima, "CustomerName" é truncado para 15 caracteres e "Country" é convertido em maiúsculas.


A mensagem "feito"

Quando um aplicativo AppML terminar de exibir dados, ele enviará uma mensagem " concluído ".

Este é o lugar perfeito para limpar ou calcular os dados do aplicativo (após a exibição).

Exemplo

<script>
function myController($appml) {
    if ($appml.message == "done") {
        calculate data here
    }
}
</script>

A mensagem "enviar"

Quando um aplicativo AppML estiver pronto para enviar dados, ele enviará uma mensagem " submit ".

Este é o lugar perfeito para validar a entrada do aplicativo.

Exemplo

<script>
function myController($appml) {
    if ($appml.message == "submit") {
        validate data here
    }
}
</script>

A mensagem "erro"

Se ocorrer um erro, o AppML enviará uma mensagem de " erro ".

Este é o lugar perfeito para lidar com erros.

Exemplo

<script>
function myController($appml) {
    if ($appml.message == "error") {
        alert ($appml.error.number + " " + $appml.error.description)
    }
}
</script>

Propriedades do AppML

Esta é uma lista de algumas propriedades AppML comumente usadas:

Property Description
$appml.message The current state of the application.
$appml.display.name The name of the data field about to be displayed.
$appml.display.value The value of the data field about to be displayed.
$appml.error.number The error number.
$appml.error.description The error description.