Zprávy AppML


Zprávy a akce AppML

Když se AppML chystá provést akci, odešle aplikační objekt ($appml) do řadiče.

Jednou z vlastností aplikačního objektu je zpráva ($appml.message), popisující stav aplikace.

Testování této zprávy vám umožní přidat svůj vlastní kód JavaScript v závislosti na akci.

Příklad

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

Zprávy AppML

Toto je seznam zpráv AppML, které lze přijímat:

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.

"Připravená" zpráva

Když je aplikace AppML připravena načíst data, odešle zprávu „připraveno“.

Toto je ideální místo pro poskytnutí počátečních dat aplikaci (počáteční hodnoty):

Příklad

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

Ve výše uvedeném příkladu, když je $appml.message "připraven", ovladač přidá do aplikace dvě nové vlastnosti ( dnešní a copyright ).

Po spuštění aplikace jsou nové vlastnosti dostupné aplikaci.


"Načtená" zpráva

Když je aplikace AppML načtena daty (připravena k zobrazení), odešle zprávu „ načteno “.

Toto je ideální místo pro provádění změn (v případě potřeby) načtených dat.

Příklad

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

"Zobrazená" zpráva

Pokaždé, když AppML zobrazí datovou položku, odešle zprávu „ zobrazit “.

Toto je ideální místo pro úpravu výstupu:

Příklad

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

Ve výše uvedeném příkladu je „CustomerName“ zkrácen na 15 znaků a „Country“ je převedeno na velká písmena.


Zpráva „hotovo“.

Když aplikace AppML dokončí zobrazování dat, odešle zprávu „ hotovo “.

Toto je ideální místo pro vyčištění nebo výpočet dat aplikace (po zobrazení).

Příklad

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

"Odeslat" zprávu

Když je aplikace AppML připravena odeslat data, odešle zprávu „ odeslat “.

Toto je ideální místo pro ověření vstupu aplikace.

Příklad

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

"Chybová" zpráva

Pokud dojde k chybě, AppML odešle " chybovou " zprávu.

Toto je ideální místo pro řešení chyb.

Příklad

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

Vlastnosti AppML

Toto je seznam některých běžně používaných vlastností 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.