AppML メッセージ


AppML メッセージとアクション

AppML が、アクションを実行しようとする時には、コントローラにアプリケーション・オブジェクト($appml)を送信します。

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

このメッセージをテストすることで、アクションに応じた独自の JavaScript コードを追加することができます。

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

AppML メッセージ

次の表は、受信すできる AppML メッセージのリストです:

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

"ready" メッセージ

AppML アプリケーションのデータ・ロード準備が完了した時に、"ready" メッセージが送信されます。

これは、初期データ(開始時の値)をアプリケーションに提供するのに最適な場所です:

<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>
Try It Yourself »

上の例では、コントローラは $appml.message が "ready" の場合、 アプリケーションに 2 つの新しいプロパティ(today copyright)を追加します。

アプリケーションを実行すると、新しいプロパティが利用可能になります。


"loaded" メッセージ

AppML アプリケーションがデータと共にロードされた(表示準備ができた)ときに、 "loaded" メッセージが送信されます。

これは、(必要な場合は)ロードされたデータの変更を提供するのに最適な場所です。

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

"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>
Try It Yourself »

上の例では、"CustomerName" は15文字に切り捨てられ、"Country" は大文字に変換されます。


"done" メッセージ

AppML アプリケーションがデータ表示を完了した時に、"done" メッセージが送信されます。

これは、(表示後に)アプリケーション・データのクリーンアップやを計算するのに最適な場所です。

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

"submit" メッセージ

AppML アプリケーションがデータ送信の準備が完了した時に、"submit" メッセージが送信されます。

これは、アプリケーションの入力を検証するのに最適な場所です。

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

"error" メッセージ

エラーが発生した場合、AppML は "error" メッセージを送信します。

これは、エラーを処理するのに最適な場所です。

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

AppML プロパティ

これは、一般的に使用されるいくつかの AppML プロパティのリストです:

プロパティ 説明
$appml.message アプリケーションの現在の状態。
$appml.display.name 表示するデータフィールド名。
$appml.display.value 表示するデータフィールドの値。
$appml.error.number エラー番号。
$appml.error.description エラーの説明。