AppML- berichten


AppML-berichten en -acties

Wanneer AppML op het punt staat een actie uit te voeren, stuurt het het toepassingsobject ($appml) naar de controller.

Een van de eigenschappen van het toepassingsobject is een bericht ($appml.message), dat de status van de toepassing beschrijft.

Door dit bericht te testen, kunt u uw eigen JavaScript-code toevoegen, afhankelijk van de actie.

Voorbeeld

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

AppML-berichten

Dit is een lijst met AppML-berichten die kunnen worden ontvangen:

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.

Het "klaar" bericht

Wanneer een AppML-toepassing klaar is om gegevens te laden, stuurt deze een "klaar"-bericht.

Dit is de perfecte plek om de applicatie te voorzien van initiële gegevens (startwaarden):

Voorbeeld

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

In het bovenstaande voorbeeld, wanneer $appml.message "ready" is, voegt de controller twee nieuwe eigenschappen toe aan de applicatie ( today en copyright ).

Wanneer de toepassing wordt uitgevoerd, zijn de nieuwe eigenschappen beschikbaar voor de toepassing.


Het "geladen" bericht

Wanneer een AppML-toepassing is geladen met gegevens (klaar om weer te geven), stuurt deze een " geladen " bericht.

Dit is de perfecte plek om (indien nodig) wijzigingen door te geven aan de geladen gegevens.

Voorbeeld

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

Het "display"-bericht

Elke keer dat AppML een gegevensitem weergeeft, wordt een " display "-bericht verzonden.

Dit is de perfecte plek om de uitvoer te wijzigen:

Voorbeeld

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

In het bovenstaande voorbeeld wordt "Klantnaam" afgekapt tot 15 tekens en wordt "Land" geconverteerd naar hoofdletters.


Het "klaar" bericht

Wanneer een AppML-toepassing klaar is met het weergeven van gegevens, stuurt deze een " klaar "-bericht.

Dit is de perfecte plek om applicatiegegevens op te schonen of te berekenen (na weergave).

Voorbeeld

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

Het bericht "verzenden"

Wanneer een AppML-applicatie klaar is om gegevens in te dienen, stuurt deze een " submit "-bericht.

Dit is de perfecte plek om applicatie-invoer te valideren.

Voorbeeld

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

Het "fout" bericht

Als er een fout optreedt, stuurt AppML een " fout "-bericht.

Dit is de perfecte plek om met fouten om te gaan.

Voorbeeld

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

AppML-eigenschappen

Dit is een lijst met enkele veelgebruikte AppML-eigenschappen:

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.