Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

AppML Messages


AppML Messages and Actions

When AppML is about to perform an action, it sends the application object ($appml) to the controller.

One of the application object's properties is a message ($appml.message), describing the application state.

Testing this message, enables you to add your own JavaScript code, depending on the action.

Example

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

AppML Messages

This is a list of AppML messages that can be received:

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.

The "ready" Message

When an AppML application is ready to load data, it will send a "ready" message.

This is the perfect place to provide the application with initial data (start values):

Example

<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>
Try It Yourself »

In the example above, when the $appml.message is "ready", the controller adds two new properties to the application (today and copyright).

When the application runs, the new properties are available to the application.



The "loaded" Message

When an AppML application is loaded with data (ready to display), it will send a "loaded" message.

This is the perfect place to provide changes (if necessary) to the loaded data.

Example

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

The "display" Message

Each time AppML is displaying a data item, it will send a "display" message.

This is the perfect place to modify the output:

Example

<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>
Try It Yourself »

In the example above, "CustomerName" is truncated to 15 characters, and "Country" is converted to upper case.


The "done" Message

When an AppML application has finished displaying data, it will send a "done" message.

This is the perfect place to clean up or calculate application data (after display).

Example

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

The "submit" Message

When an AppML application is ready to submit data, it will send a "submit" message.

This is the perfect place to validate application input.

Example

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

The "error" Message

If an error occurs, AppML will send an "error" message.

This is the perfect place to handle errors.

Example

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

AppML Properties

This is a list of some commonly used AppML properties:

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.

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.