Pengontrol AppML


Tujuan pengontrol AppML , adalah untuk memungkinkan Anda mengontrol aplikasi Anda.


Apa yang Bisa Dilakukan Pengendali?

  • Setel data awal
  • Ubah data aplikasi
  • Menangani input dan output
  • Validasi data
  • Meringkas data
  • Menangani kesalahan
  • Mulai dan hentikan aplikasi
  • Dan banyak lagi

Tanpa Pengontrol

Secara default, aplikasi AppML berjalan tanpa pengontrol:

Contoh

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

Dengan Pengontrol

Dengan pengontrol AppML, Anda dapat mengontrol aplikasi Anda dengan JavaScript .

Pengontrol adalah fungsi JavaScript, yang disediakan oleh Anda .

Atribut appml-controller digunakan untuk merujuk ke fungsi controller.

Contoh

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

Controller (myController) pada contoh di atas, mengubah nilai "CustomerName" menjadi huruf besar, sebelum ditampilkan.

Jika Anda memiliki pengontrol, AppML akan mengirimkan objek aplikasi ($appml) ke pengontrol, untuk setiap tindakan penting.

Salah satu properti aplikasi adalah pesan ($appml.message), yang menjelaskan status aplikasi.

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.

Pesan dijelaskan di bab berikutnya.