最新的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 错误描述。