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