AppML コントローラ


AppML コントローラの目的は、アプリケーションをコントロールできるようにすることです。


コントローラは何ができるの?


コントローラなし

AppML アプリケーションは、デフォルトではコントローラを使用せずに実行されます:

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

コントローラを使用

AppML コントローラを使用すれば、JavaScript でアプリケーションをコントロールできます。

コントローラは、あなたが提供する JavaScript 関数です。

appml-controller 属性は、コントローラ関数を参照するために使用します。

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

上記例のコントローラ(myControlller)は、表示する前に、"CustomerName" の値を大文字に変更します。

コントローラを使用している場合、AppML は、すべての重要なアクションのために、 コントローラにアプリケーションオブジェクト($appml)を送信します。

アプリケーション・プロパティの一つは、アプリケーションの状態を示すメッセージ($appml.message)です。

メッセージ 説明
ready AppML が初期化され、データ・ロードの準備が完了後に送信される。
loaded AppML が完全にロードされ、データの表示準備が完了した後に送信される。
display AppML がデータ項目を表示する前に送信される。
done AppML が行われた(表示終了)後に送信される。
submit AppML がデータを送信する前に送信される。
error AppML でエラーが発生した後に送信される。
Note メッセージは、次章で説明します。