Wiadomości AppML


Komunikaty i działania AppML

Gdy AppML ma wykonać akcję, wysyła obiekt aplikacji ($appml) do kontrolera.

Jedną z właściwości obiektu aplikacji jest komunikat ($appml.message), opisujący stan aplikacji.

Testowanie tej wiadomości umożliwia dodanie własnego kodu JavaScript, w zależności od akcji.

Przykład

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

Wiadomości AppML

Oto lista wiadomości AppML, które można odbierać:

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.

„Gotowa” wiadomość

Gdy aplikacja AppML jest gotowa do załadowania danych, wyśle ​​komunikat „gotowy”.

To idealne miejsce do podania do aplikacji danych początkowych (wartości początkowe):

Przykład

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

W powyższym przykładzie, gdy $appml.message jest „gotowy”, kontroler dodaje do aplikacji dwie nowe właściwości ( dzisiaj i copyright ).

Po uruchomieniu aplikacji nowe właściwości są dostępne dla aplikacji.


„Załadowana” wiadomość

Gdy aplikacja AppML zostanie załadowana danymi (gotowa do wyświetlenia), wyśle ​​komunikat „ wczytany ”.

Jest to idealne miejsce do wprowadzania zmian (w razie potrzeby) do załadowanych danych.

Przykład

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

Komunikat „wyświetlacz”

Za każdym razem, gdy AppML wyświetla element danych, wyśle ​​komunikat „ wyświetl ”.

To idealne miejsce na modyfikację wyjścia:

Przykład

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

W powyższym przykładzie „Nazwa klienta” jest obcinana do 15 znaków, a „Kraj” jest konwertowane na wielkie litery.


Wiadomość „gotowe”

Gdy aplikacja AppML zakończy wyświetlanie danych, wyśle ​​komunikat „ gotowe ”.

Jest to idealne miejsce do czyszczenia lub obliczania danych aplikacji (po wyświetleniu).

Przykład

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

Wiadomość „prześlij”

Gdy aplikacja AppML jest gotowa do przesłania danych, wyśle ​​komunikat „ prześlij ”.

To idealne miejsce do sprawdzania poprawności danych wejściowych aplikacji.

Przykład

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

Komunikat „błąd”

Jeśli wystąpi błąd, AppML wyśle komunikat o błędzie .

To idealne miejsce do obsługi błędów.

Przykład

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

Właściwości AppML

Oto lista niektórych często używanych właściwości AppML:

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.