AppML 原型

在本章中,我们将为 web 应用程序构建一个原型。


创建一个 HTML 原型

首先,使用你最喜欢的 CSS 创建一个像样的 HTML 原型

在本例中,我们使用了 W3.CSS:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <title>Customers</title>
  4. <link rel="stylesheet" href="https://cankaoshouce.com/css/w3.css">
  5. <body>
  6. <div class="w3-container">
  7. <h2>Customers</h2>
  8. <table class="w3-table-all">
  9. <tr>
  10. <th>Customer</th>
  11. <th>City</th>
  12. <th>Country</th>
  13. </tr>
  14. <tr>
  15. <td>{{CustomerName}}</td>
  16. <td>{{City}}</td>
  17. <td>{{Country}}</td>
  18. </tr>
  19. </table>
  20. </div>
  21. </body>
  22. </html>
{{ … }} 是 AppML 数据的占位符。

添加 AppML

创建 HTML 原型后,可以添加 AppML:

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

添加 AppML:

<script src="https://www.w3schools.com/appml/2.0.3/appml.js">

添加一个本地 WebSQL 数据库:

<script src="https://www.w3schools.com/appml/2.0.3/appml_sql.js">

定义一个数据源:

appml-data="customers.js"

要为 records 中的每一条数据定义重复的 HTML 元素:

appml_repeat="records"

为了简单起见,在连接到数据库之前,从客户等本地数据(如 customers.js)开始。


创建一个 AppML 模型

为了能够使用数据库,您需要一个 AppML 数据库模型:

proto_customers.js
  1. {
  2. "rowsperpage" : 10,
  3. "database" : {
  4. "connection" : "localmysql",
  5. "sql" : "Select * from Customers",
  6. "orderby" : "CustomerName",
  7. }

如果没有本地数据库,可以使用 AppML 模型创建 Web SQL 数据库。

要创建包含单个记录的表,请使用如下模型:proto_customers_single.js

创建本地数据库在 IE 或 Firefox 中不起作用,使用 Chrome 或 Safari。

在应用程序中使用该模型。是否将数据源更改为 local?model=proto_customers_single

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <title>Customers</title>
  4. <link rel="stylesheet" href="https://cankaoshouce.com/css/w3.css">
  5. <script src="https://cankaoshouce.com/js/appml/appml.js"></script>
  6. <script src="/js/appml/appml_sql.js"></script>
  7. <body>
  8. <div class="w3-container" appml-data="local?model=/example/appml/proto_customers_single">
  9. <h2>Customers</h2>
  10. <table class="w3-table-all">
  11. <tr>
  12. <th>Customer</th>
  13. <th>City</th>
  14. <th>Country</th>
  15. </tr>
  16. <tr appml-repeat="records">
  17. <td>{{CustomerName}}</td>
  18. <td>{{City}}</td>
  19. <td>{{Country}}</td>
  20. </tr>
  21. </table>
  22. </div>
  23. </body>
  24. </html>

创建包含多条记录的本地数据库

要创建包含多条记录的表,请使用如下模型: proto_customers_all.js

将数据源改为 local?model=proto_customers_all

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <title>Customers</title>
  4. <link rel="stylesheet" href="https://cankaoshouce.com/css/w3.css">
  5. <script src="https://cankaoshouce.com/js/appml/appml.js"></script>
  6. <script src="/js/appml/appml_sql.js"></script>
  7. <body>
  8. <div class="w3-container" appml-data="local?model=/example/appml/proto_customers_all">
  9. <h2>Customers</h2>
  10. <table class="w3-table-all">
  11. <tr>
  12. <th>Customer</th>
  13. <th>City</th>
  14. <th>Country</th>
  15. </tr>
  16. <tr appml-repeat="records">
  17. <td>{{CustomerName}}</td>
  18. <td>{{City}}</td>
  19. <td>{{Country}}</td>
  20. </tr>
  21. </table>
  22. </div>
  23. </body>
  24. </html>

添加导航模板

假设您希望所有应用程序都需要有一个通用的导航工具栏:

创建一个这样的 HTML 模板:

inc_listcommands.html
  1. <div class="w3-bar w3-border w3-section">
  2. <button class="w3-button" id='appmlbtn_first'>&#10094;&#10094;</button>
  3. <button class="w3-button" id='appmlbtn_previous'>&#10094;</button>
  4. <button class="w3-button w3-hover-none" id='appmlbtn_text'></button>
  5. <button class="w3-button" id='appmlbtn_next'>&#10095;</button>
  6. <button class="w3-button" id='appmlbtn_last'>&#10095;&#10095;</button>
  7. <button class="w3-btn ws-green" id='appmlbtn_query'>Filter</button>
  8. </div>
  9. <div id="appmlmessage"></div>

将模板保存在一个文件中,使用合适的名称,如 "inc_listcommands.html"。

在原型中包含带有属性 appml-include-html 的模板 :

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <title>Customers</title>
  4. <link rel="stylesheet" href="https://cankaoshouce.com/css/w3.css">
  5. <script src="https://cankaoshouce.com/js/appml/appml.js"></script>
  6. <script src="/js/appml/appml_sql.js"></script>
  7. <body>
  8. <div class="w3-container" appml-data="local?model=/example/appml/proto_customers_all">
  9. <h2>Customers</h2>
  10. <div appml-include-html="/example/appml/inc_listcommands.html"></div>
  11. <table class="w3-table-all">
  12. <tr>
  13. <th>Customer</th>
  14. <th>City</th>
  15. <th>Country</th>
  16. </tr>
  17. <tr appml-repeat="records">
  18. <td>{{CustomerName}}</td>
  19. <td>{{City}}</td>
  20. <td>{{Country}}</td>
  21. </tr>
  22. </table>
  23. </div>
  24. </body>
  25. </html>