最新的Web開發教程
 

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完成後發送(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" ,控制器增加了兩個新的屬性到應用程序( 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 錯誤描述。