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