Tutorials References Exercises Videos Menu
Create Website Get Certified Upgrade

AppML Controllers


The purpose of an AppML controller, is to let you control your application.


What Can a Controller Do?

  • Set initial data
  • Change application data
  • Handle input and output
  • Validate data
  • Summarize data
  • Handle errors
  • Start and stop applications
  • And much more

Without a Controller

By default AppML applications run without a controller:

Example

<table appml-data="customers.js">
<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>
Try It Yourself »


With a Controller

With an AppML controller, you can control your application with JavaScript.

The controller is a JavaScript function, provided by you.

The appml-controller attribute is used to refer to a controller function.

Example

<h1>Customers</h1>
<table appml-data="customers.js" appml-controller="myController">
  <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>

<script>
function myController($appml) {
    if ($appml.message == "display") {
        if ($appml.display.name == "CustomerName") {
            $appml.display.value = $appml.display.value.toUpperCase();
        }
    }
}
</script>
Try It Yourself »

The controller (myController) in the example above, changes the value of "CustomerName" to uppercase, before it is displayed.

If you have a controller, AppML will send the application object ($appml) to the controller, for every important action.

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

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.

Messages are explained in the next chapter.