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.