Сообщения AppML


Сообщения и действия AppML

Когда AppML собирается выполнить действие, он отправляет объект приложения ($appml) в контроллер.

Одним из свойств объекта приложения является сообщение ($appml.message), описывающее состояние приложения.

Тестирование этого сообщения позволяет добавить собственный код JavaScript в зависимости от действия.

Пример

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

Сообщения AppML

Это список сообщений AppML, которые можно получить:

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.

«Готовое» сообщение

Когда приложение AppML будет готово к загрузке данных, оно отправит сообщение «готово».

Это идеальное место для предоставления приложению исходных данных (начальных значений):

Пример

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

В приведенном выше примере, когда сообщение $appml.message «готово», контроллер добавляет к приложению два новых свойства (« сегодня » и « copyright » ).

Когда приложение запускается, новые свойства становятся доступными для приложения.


«Загруженное» сообщение

Когда приложение AppML загружается с данными (готово к отображению), оно отправляет сообщение « loaded ».

Это идеальное место для внесения изменений (при необходимости) в загруженные данные.

Пример

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

«Показать» сообщение

Каждый раз, когда AppML отображает элемент данных, он отправляет сообщение " display ".

Это идеальное место для изменения вывода:

Пример

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

В приведенном выше примере «CustomerName» усекается до 15 символов, а «Country» преобразуется в верхний регистр.


Сообщение «Готово»

Когда приложение AppML закончит отображать данные, оно отправит сообщение «Готово » .

Это идеальное место для очистки или расчета данных приложения (после отображения).

Пример

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

Сообщение "отправить"

Когда приложение AppML будет готово к отправке данных, оно отправит сообщение « отправить ».

Это идеальное место для проверки ввода приложения.

Пример

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

Сообщение об ошибке

При возникновении ошибки AppML отправит сообщение об ошибке .

Это идеальное место для обработки ошибок.

Пример

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

Свойства AppML

Это список некоторых часто используемых свойств 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.