AppML 訊息
AppML 訊息和操作
當 AppML 即將執行一個操作時,它會將應用程式物件 ($appml) 傳送到控制器。
應用程式物件的一個屬性是訊息 ($appml.message),它描述了應用程式的狀態。
測試此訊息,可以根據操作新增您自己的 JavaScript 程式碼。
示例
function myController($appml) {
if ($appml.message == "ready") {alert ("Hello Application");}
}
自己試試 »
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>客戶</h1>
<p>{{today}}</p>
<table>
<tr>
<th>客戶</th>
<th>城市</th>
<th>國家</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>
自己試試 »
在上面的示例中,當 $appml.message 為“ready”時,控制器會嚮應用程式新增兩個新屬性(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>客戶</h1>
<table>
<tr>
<th>客戶</th>
<th>城市</th>
<th>國家</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 | 錯誤描述。 |