最新のWeb開発のチュートリアル
 

AppMLメッセージ


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

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

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

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

function myController($appml) {
    if ($appml.message == "ready") {alert ("Hello Application");}
}
»それを自分で試してみてください

AppMLメッセージ

これを受信することができるAppMLメッセージのリストです:

メッセージ 説明
"ready" AppMLが開始された後に送られて、データをロードする準備ができて。
"loaded" AppMLは、データを表示する準備ができて、完全にロードされた後に送信されます。
"display" AppMLは、データ項目を表示する前に送信されます。
"done" AppMLが行われた後に送られた(finished displaying)
"submit" AppMLがデータを送信する前に送信されます。
"error" AppMLでエラーが発生した後に送られました。

"ready"メッセージ

AppMLアプリケーションがデータをロードする準備ができたとき、それが送信されます"ready"のメッセージを。

これは、初期データとアプリケーションを提供するのに最適な場所です(start values)

<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 = "w3ii"
    }
}
</script>
»それを自分で試してみてください

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

アプリケーションを実行すると、新しいプロパティは、アプリケーションに利用できます。


"loaded"メッセージ

AppMLアプリケーションにデータがロードされている場合(ready to display) 、それが送信されます" loaded "のメッセージを。

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

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>
»それを自分で試してみてください

上記の例では、 "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 エラーの説明。