Messaggi AppML
Messaggi e azioni AppML
Quando AppML sta per eseguire un'azione, invia l'oggetto dell'applicazione ($appml) al controller.
Una delle proprietà dell'oggetto applicazione è un messaggio ($appml.message), che descrive lo stato dell'applicazione.
Il test di questo messaggio ti consente di aggiungere il tuo codice JavaScript, a seconda dell'azione.
Esempio
function myController($appml) {
if ($appml.message == "ready") {alert ("Hello
Application");}
}
Messaggi AppML
Questo è un elenco di messaggi AppML che possono essere ricevuti:
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. |
Il messaggio "pronto".
Quando un'applicazione AppML è pronta per caricare i dati, invierà un messaggio "pronto".
Questo è il posto perfetto per fornire all'applicazione i dati iniziali (valori iniziali):
Esempio
<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>
Nell'esempio precedente, quando $appml.message è "pronto", il controller aggiunge due nuove proprietà all'applicazione ( oggi e copyright ).
Quando l'applicazione viene eseguita, le nuove proprietà sono disponibili per l'applicazione.
Il messaggio "caricato".
Quando un'applicazione AppML viene caricata con dati (pronta per la visualizzazione), invierà un messaggio " loaded ".
Questo è il luogo perfetto per apportare modifiche (se necessarie) ai dati caricati.
Esempio
function myController($appml) {
if ($appml.message == "loaded") {
// compute your values here before display
}
}
Il messaggio "visualizza".
Ogni volta che AppML visualizza un elemento dati, invierà un messaggio di " visualizzazione ".
Questo è il posto perfetto per modificare l'output:
Esempio
<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>
Nell'esempio precedente, "Nome cliente" viene troncato a 15 caratteri e "Paese" viene convertito in maiuscolo.
Il messaggio "fatto".
Quando un'applicazione AppML ha terminato di visualizzare i dati, invierà un messaggio " fatto ".
Questo è il posto perfetto per ripulire o calcolare i dati dell'applicazione (dopo la visualizzazione).
Esempio
<script>
function myController($appml) {
if ($appml.message == "done") {
calculate data here
}
}
</script>
Il messaggio "invia".
Quando un'applicazione AppML è pronta per inviare i dati, invierà un messaggio " invia ".
Questo è il posto perfetto per convalidare l'input dell'applicazione.
Esempio
<script>
function myController($appml) {
if ($appml.message == "submit") {
validate data here
}
}
</script>
Il messaggio di "errore".
Se si verifica un errore, AppML invierà un messaggio di " errore ".
Questo è il posto perfetto per gestire gli errori.
Esempio
<script>
function myController($appml) {
if ($appml.message ==
"error") {
alert ($appml.error.number + " " + $appml.error.description)
}
}
</script>
Proprietà AppML
Questo è un elenco di alcune proprietà AppML comunemente utilizzate:
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. |