Tutorials References Exercises VideosMenu
Free WebsiteGet CertifiedPro

AppML Reference


AppML HTML Attributes

Example

<div appml-include-html="inc_header.htm"></div>

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

<div appml-include-html="inc_footer.htm"></div>
Try It Yourself »
AttributeDescriptionExplained
appml-controllerDefines an AppML controllerAppML Controllers
appml-dataDefines the data source for an applicationAppML Data
appml-include-htmlDefines HTML to be includedAppML Includes
appml-repeatDefines an HTML element to be repeatedAppML Howto

AppML Messages

Example

function myController($appml) {
    if ($appml.message =="display") {
        if ($appml.display.name =="CustomerName") {
            $appml.display.value = $appml.display.value.toUpperCase();
        }
    }
}
Try It Yourself »
MessageSent
readyAfter AppML is initiated, and ready to load data.
loadedAfter AppML is fully loaded, ready to display data.
displayBefore AppML displays a data item.
doneAfter AppML is done (finished displaying).
submitBefore AppML submits data.
errorAfter AppML has encountered an error.

AppML messages are explained in the chapter about AppML messages.



AppML Models

Example

{
"security": "admin",
"rowsperpage" : 10,

"database": {
    "connection": "mysql",
    "sql"       : "SELECT * FROM Customers",
    "orderby"   : "CustomerName"}},

"filteritems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}],

"sortitems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}]
}

AppML Model Properties

ElementDescription
"data"Defines a flat file source for the model
"database"Defines a database source for the model
"filteritems"Defines filter restrictions
"rowsperpage"Defines number of rows to be fetched per page
"security"Defines the security for the model
"sortitems"Defines sorting restrictions

Application Security

You have to be logged in as a member of the "admin" group, to access this application:

Example

{
"security": "admin",
"database": {
    "connection": "mysql",
    "sql"       : "SELECT * FROM Customers",
    "orderby"   : "CustomerName"}
}

Private Models

You can add your own private data to the model.

This example suggests restrictions to data:

Example

"restrictions" : {
    "fname" : {"maxlength": 40},
    "price" : {"max": 999,"min": 100}
    }

Model data can be used by server applications, and by your AppML controller.

This example uses model data to validate input:

Example

function myController($appml) {
    if ($appml.message =="submit") {
        var price = document.getElementById("price").value;
        if (price < $appml.model.restrictions.price.min) {
            $appml.displayError(15, "Price too low!");
            return;
        }
}