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 | 錯誤描述。 |