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 | エラーの説明。 |