应用机器学习留言


AppML 消息和操作

当 AppML 即将执行操作时,它将应用程序对象 ($appml) 发送到控制器。

应用程序对象的属性之一是消息 ($appml.message),用于描述应用程序状态。

测试此消息使您能够根据操作添加自己的 JavaScript 代码。

示例

function myController($appml) {
    if ($appml.message == "ready") {alert ("Hello Application");}
}
亲自试一试»

AppML 消息

这是可以接收的 AppML 消息的列表:

Message Description
"ready" Sent after AppML is initiated, and ready to load data.
"loaded" Sent after AppML is fully loaded, ready to display data.
"display" Sent before AppML displays a data item.
"done" Sent after AppML is done (finished displaying).
"submit" Sent before AppML submits data.
"error" Sent after AppML has encountered an error.

"ready" 消息

当 AppML 应用程序准备好加载数据时,它将发送 "ready" 消息。

这是向应用程序提供初始数据(起始值)的最佳位置:

示例

<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 = "91xjr"
    }
}
</script>
亲自试一试»

在上面的例子中,当$appml.消息是"ready",控制器向应用程序添加两个新属性(今天版权)。

当应用程序运行时,新属性可供应用程序使用。



"loaded" 消息

当 AppML 应用程序加载数据(准备显示)时,它将发送一个“已加载“ 信息。

这是对加载的数据进行更改(如有必要)的完美位置。

示例

function myController($appml) {
    if ($appml.message == "loaded") {
        // compute your values here before display
    }
}

"display" 消息

每次 AppML 显示数据项时,它都会发送一个“展示“ 信息。

这是修改输出的最佳位置:

示例

<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 应用程序完成数据显示时,它将发送一个“完毕“ 信息。

这是清理或计算应用程序数据(显示后)的理想场所。

示例

<script>
function myController($appml) {
    if ($appml.message == "done") {
        calculate data here
    }
}
</script>

"submit" 消息

当 AppML 应用程序准备好提交数据时,它将发送一个“提交“ 信息。

这是验证应用程序输入的完美位置。

示例

<script>
function myController($appml) {
    if ($appml.message == "submit") {
        validate data here
    }
}
</script>

"error" 消息

如果发生错误,AppML 将发送“错误“ 信息。

这是处理错误的完美位置。

示例

<script>
function myController($appml) {
    if ($appml.message == "error") {
        alert ($appml.error.number + " " + $appml.error.description)
    }
}
</script>

AppML 属性

这是一些常用 AppML 属性的列表:

Property Description
$appml.message The current state of the application.
$appml.display.name The name of the data field about to be displayed.
$appml.display.value The value of the data field about to be displayed.
$appml.error.number The error number.
$appml.error.description The error description.