AppML 控制器

AppML 控制器 的用途是让您 控制 应用程序。


控制器能做什么?

  • 设置初始数据
  • 更改应用程序数据
  • 处理输入和输出
  • 验证数据
  • 汇总数据
  • 处理错误
  • 启动和停止应用程序
  • 还有更多

不使用控制器

默认情况下,AppML 应用程序在没有控制器的情况下运行:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <title>Customers</title>
  4. <link rel="stylesheet" href="/example/appml/style.css">
  5. <script src="https://cankaoshouce.com/js/appml/appml.js"></script>
  6. <body>
  7. <h1>Customers</h1>
  8. <table appml-data="/example/appml/customers.js">
  9. <tr>
  10. <th>Customer</th>
  11. <th>City</th>
  12. <th>Country</th>
  13. </tr>
  14. <tr appml-repeat="records">
  15. <td>{{CustomerName}}</td>
  16. <td>{{City}}</td>
  17. <td>{{Country}}</td>
  18. </tr>
  19. </table>
  20. </body>
  21. </html>

使用控制器

使用 AppML 控制器,您可以使用 JavaScript 控制 应用程序。

控制器是一个由您提供的 JavaScript 函数

appml-controller 属性用于引用控制器函数。

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <title>Customers</title>
  4. <link rel="stylesheet" href="/example/appml/style.css">
  5. <script src="https://cankaoshouce.com/js/appml/appml.js"></script>
  6. <body>
  7. <h2>Customers</h2>
  8. <table appml-data="/example/appml/customers.js" appml-controller="myController">
  9. <tr>
  10. <th>Customer</th>
  11. <th>City</th>
  12. <th>Country</th>
  13. </tr>
  14. <tr appml-repeat="records">
  15. <td>{{CustomerName}}</td>
  16. <td>{{City}}</td>
  17. <td>{{Country}}</td>
  18. </tr>
  19. </table>
  20. <script>
  21. function myController($appml) {
  22. if ($appml.message == "display") {
  23. if ($appml.display.name == "CustomerName") {
  24. $appml.display.value = $appml.display.value.toUpperCase();
  25. }
  26. }
  27. }
  28. </script>
  29. </body>
  30. </html>

上例中的控制器(myController)在显示 "CustomerName" 之前将其值更改为大写。

如果您有一个控制器,对于每个重要的操作,AppML 都会将 应用程序对象 ($AppML)发送给控制器。

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

消息描述
readyAppML 启动并准备加载数据后发送
loadedAppML 完全加载后发送,准备显示数据
display在 AppML 显示数据项之前发送
doneAppML 完成后发送(显示完成)
submit在 AppML 提交数据之前发送。
error在 AppML 遇到错误后发送
消息将在下一章中详细讲解。