
# 如何获取后台数据
#### 使用说明
标准页面是通过数据模型驱动的，通过绑定数据模型可以快速获取后台数据，并体现到页面组件上。因此，为了获取后台数据，需要先定义页面数据模型，再进行与前端组件的绑定。在将模型与前台页面组件或后台逻辑绑定后，开发者只需要关注模型数据的实例化和处理，不需要关注页面的渲染和展示。
#### 定义页面数据模型
1. 打开一个标准页面，在标准页面的左下方，单击"模型视图"。
2. 在"模型视图"中，单击"新增模型"。
3. 添加模型，定义模型名称与来源，单击"下一步"，如[图1]所示。
   
   图1定义模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888140.png "点击放大")
   低代码平台支持四类模型（如[图1]），每类模型都包含参数定义和方法定义。方法是在模型上定义的API，通常会在前台组件关联的事件脚本（例如页面加载事件、鼠标单击事件）中调用这些API，以实现某些功能。
   表1模型来源说明 
   | 分类    | 模型说明                                                                                                                                                                                                                               | 模型参数的定义                                      | 模型方法的定义                        | API调用方法                                                                                                                                                                                                                                                   |
   |:---|:---|:---|:---|:---|
   | 自定义函数 | 开发者自由定义的模型。                                                                                                                                                                                                                        | 由开发者自定义，可以添加子节点。                             | 开发者自定义方法。                      | *$model.ref("modelName").actionName();*                                                                                                                                                                                                                   |
   | 对象    | 由Object对象表映射生成，关于对象模型的更多信息请参考[3.1 了解对象模型](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0034.html)。                                                                                                            | 系统自动获取Object所有的字段，开发者可以从中选择部分字段作为参数。         | 系统自动生成查询、保存、删除和统计四个方法。         | *$model.ref("modelName").query(param);* *$model.ref("modelName").save();* *$model.ref("modelName").delete();* *$model.ref("modelName").count();* |
   | 服务    | 服务模型是由后台服务映射生成的。当前支持与服务编排或脚本映射，关于服务模型的更多信息请参考[7.1 什么是服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0600.html)和[8.1 什么是脚本？](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0046.html)。 | 参数根据后台服务的入参、出参映射生成为inputParam和outputParam节点。 | 系统自动生成run方法 ，用于执行模型关联的服务编排或脚本。 | *$model.ref("modelName").run();*                                                                                                                                                                                                                          |
   | 事件    | 事件模型是由后台事件的字段映射生成的，并且支持websocket刷新模型数据。                                                                                                                                                                                            | 参数根据后台事件的字段映射生成。                             | 直接使用                           | 直接使用                                                                                                                                                                                                                                                      |
      
   除了在模型中定义的方法，低代码平台还提供了如下标准API，适用于所有的模型。
   - 获取模型数据：*$model.ref("modelName").getData();*
   
   - 设置模型数据：*$model.ref("modelName").setData();*
   
   - 设置模型字段值：*$model.ref("modelName").setValue(key,value);*
   
   
   
   
4. 在新建模型"设置"页面，执行如下操作。 
   - 若上一步来源选择"自定义函数"，需要添加子节点自定义参数及类型。
   
   - 若上一步来源选择"对象"，需要配置模型关联的对象以及字段。
   
   - 若上一步来源选择"服务"，需要配置模型关联的后台服务，可以是脚本、服务编排或者具体的API。
   
   - 若上一步来源选择"事件"，需要配置模型关联的事件以及事件字段。
   
   
   
   
5. 单击"下一步"，设置方法。 
   方法一般无需添加，如需添加或修改，可参考对象和服务默认生成的方法。
   
   
6. 设置完成后，单击"确定"。
 
