
# 设置华为云Astro轻应用标准页面容器组件属性
标准页面提供了流式布局（Flow Layout）和弹性布局（Flex Layout），标准页面的基础布局主要是通过"容器"组件实现的。
容器组件就是基础的布局容器，可以将其理解为CSS中DIV的概念。DIV是层叠样式表中的定位技术，全称Division，即为划分，有时可以称其为图层。 DIV是HTML中的一个标签元素，用来为HTML文档内大块的内容提供结构和背景的元素，可以将"容器"简单理解为画布，通过设置外层画布的属性达到控制内容布局的效果。
图1容器组件   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910778436.png "点击放大")
#### 数据绑定
将容器组件的某个属性，如隐藏、样式、弹性布局等与具体的模型字段相绑定，绑定后组件的属性随模型字段的值变化而变化，类似Vue的v-bind。
1. 在"数据绑定"中，单击"属性值绑定"后的"+"。 
   图2单击添加图标   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944700637.png)
   
   
2. 在"属性"下拉框中，选择容器的某个属性。
3. 在模型字段中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911421478.png)，进入选择模型页面。
   
   图3选择设置图标   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911541390.png)
   
   
4. 单击"新增模型"，进入新增模型页面。
5. 设置模型名称与来源，单击"下一步"。 
   图4定义模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944700641.png "点击放大")
   华为云Astro轻应用支持自定义、对象、服务和事件四类模型，每类模型都包含参数定义和方法定义。方法是在模型上定义的API，通常会在前台组件关联的事件脚本（例如页面加载事件、鼠标单击事件）中调用这些API，以实现某些功能。
   表1模型来源说明 
   | 分类  | 模型说明                                                                                                                                                                                                                  | 模型参数的定义                                       | 模型方法的定义                        | API调用方法                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|:---|:---|:---|
   | 自定义 | 开发者自行定义的模型。                                                                                                                                                                                                           | 由开发者自定义，可以添加子节点。                              | 开发者自定义方法。                      | *$model.ref("modelName").actionName();*                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 对象  | 由Object对象表映射生成，关于对象模型的详细介绍，请参见[对象](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9024.html)。                                                                                                      | 系统自动获取Object所有的字段，开发者可以从中选择部分字段作为参数。          | 系统自动生成查询、保存、删除和统计四个方法。         | - 查询：*$model.ref("modelName").query(param);*  - 保存：*$model.ref("modelName").save();*  - 删除：*$model.ref("modelName").delete();*  - 统计：*$model.ref("modelName").count();*   |
   | 服务  | 服务模型由后台服务映射生成，当前仅支持与服务编排、脚本进行映射。关于服务模型的详细介绍，请参见[服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9129.html)和[脚本](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9159.html)。 | 参数根据后台服务的入参、出参，映射生成为inputParam和outputParam节点。 | 系统自动生成run方法 ，用于执行模型关联的服务编排或脚本。 | *$model.ref("modelName").run();*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 事件  | 事件模型由后台事件的字段映射生成，并且支持websocket刷新模型数据。                                                                                                                                                                                 | 参数根据后台事件的字段映射生成。                              | 直接使用                           | 直接使用                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
      
   除了在模型中定义的方法，低代码平台还提供了如下标准API，适用于所有的模型。
   - 获取模型数据：*$model.ref("modelName").getData();*
   
   - 设置模型数据：*$model.ref("modelName").setData();*
   
   - 设置模型字段值：*$model.ref("modelName").setValue(key,value);*
   
   
   
   
6. 在新建模型"设置"页面，执行如下操作。 
   - 如果上一步来源选择"自定义"，需要添加子节点自定义参数及类型。
   
   - 如果上一步来源选择"对象"，需要配置模型关联的对象以及字段。
   
   - 如果上一步来源选择"服务"，需要配置模型关联的后台服务，可以是脚本、服务编排或者公共接口。
   
   - 如果上一步来源选择"事件"，需要配置模型关联的事件以及事件字段。
   
   
   
   
7. 单击"下一步"，设置方法。 
   方法一般无需添加，如需添加或修改，可参考对象和服务默认生成的方法。
   
   
8. 设置完成后，单击"确定"。
 
#### 基本属性
- 流式布局 容器组件默认弹性布局未开启，处于流式布局的状态，如[图5]所示。
  图5流式布局   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910778448.png)
  在流式布局中，组件默认为块级（Block）元素，即不论组件宽度是多少，默认占据全部父级元素的宽度。如[图6]所示，向画布中拖拽一个"容器"组件，再向"容器"组件中拖入两个"标题"组件，"标题"组件为块级元素，默认占据全部父级元素宽度，即外层"容器"的宽度，第二个"标题"组件会在第一个"标题"组件的下方。
  图6流式布局中组件为块级元素   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944417645.png "点击放大")
  流式布局中，组件由上至下依次排布，可以通过"水平对齐方式"对容器内组件进行水平位置调整，如[图7]、[图8]所示。
  图7居中水平对齐   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910938460.png "点击放大")
  图8靠右水平对齐   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910778452.png "点击放大") 
- 弹性布局 将"容器"组件属性面板中的"弹性布局"开启后，布局由流式布局切换到弹性布局。在弹性布局的属性配置中，会出现"排列方向"、"水平对齐方式"和"垂直对齐方式"，如[图9]所示。
  图9弹性布局   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944417649.png "点击放大")
  为了方便说明弹性布局，向画布中拖拽一个"容器"组件，再向"容器"组件中拖入五个"容器"组件，将每个"容器"组件的宽度和高度设置为100px，并为每个"容器"组件设置不同的背景颜色，在每个"容器"中加入一个"标题"组件，分别显示A、B、C、D、E。
  默认弹性布局下，排列方向为"行"，水平对齐方式为"起点对齐"，垂直对齐方式为"起点对齐"，如[图10]所示。
  图10弹性布局默认效果   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910938464.png "点击放大")
  **排列方向** 属性决定了容器内组件的排列方向。当排列方向为"行"时，容器内组件从左到右排布。排列方向为"列"时，容器内组件从上到下排布，如[图11]。
  图11排列方向"列"   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910778456.png "点击放大")
  **水平排列方式** 属性，决定了容器主轴方向排列方式。当容器排列方向为"行"时，水平排列方式属性作用于水平方向。当容器排列方向为"列"时，水平排列方式属性作用于垂直方向。排列方向为行时起点为左，水平对齐方式选择"中间对齐"和"终点对齐"时，如[图12]、[图13]所示。
  图12水平对齐方式选择"中间对齐"   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944417653.png "点击放大")
  图13水平对齐方式选择"终点对齐"   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910938468.png "点击放大")
  **垂直排列方式** 属性决定了容器交叉轴方向排列方式。当容器排列方向为"行"时，垂直排列方式属性作用于垂直方向。容器排列方向为"列"时，垂直排列方式属性作用于水平方向。当容器排列方向为行时起点为上，垂直对齐方式选择"中间对齐"和"终点对齐"时，如[图14]、[图15]所示。
  图14垂直对齐方式选择"中间对齐"   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910778460.png "点击放大")
  图15垂直对齐方式选择"终点对齐"   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944417657.png "点击放大")
  通过对弹性布局属性的不同组合配置，实现用户想要实现的布局效果。例如，将排列方向设置为"行"，水平对齐方式和垂直对齐方式设置成"中间对齐"，实现居中布局的效果，如[图16]所示。
  图16弹性布局实现居中   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910938472.png "点击放大") 
 
#### 移动端配置
- 固定底部：开启后，在移动端预览页面时，容器组件在页面底部显示。
  图17显示在页面底部   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910956764.png) 
- 固定顶部：开启后，在移动端预览页面时，容器组件在页面顶部显示。
  图18显示在页面顶部   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910957396.png) 
- 按钮填满容器：开启后，在移动端预览页面时，按钮组件填满整个容器。
  图19按钮填满容器   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944438185.png) 
- 按钮单行展示：开启后，在移动端预览页面时，按钮组件和其他组件在一行显示。
  图20按钮单行展示   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910959968.png) 
 
#### 公共
- 控件名称：设置容器组件在页面的显示名称。
- 隐藏：预览标准页面时，是否隐藏容器组件。
 
#### 样式
针对有丰富前端开发经验的用户，可通过"样式"面板对页面进行更深度的个性化布局定制。
- 布局：对页面CSS属性进行直接配置，如设置组件的宽度、高度等。您也可以在"高级设置"中，直接编写CSS代码进行更深度的个性化布局定制。
  - 单击"显示"属性后的按钮，可以快速指定当前元素布局为"block"、"inline-block"、"inline"和"flex"。
  
  - "显示"属性下方展示了当前元素的盒模型示意图，在对应的数字位置单击并改变值，即可快速改变元素上下左右位置上的内外边距属性。
  
  - 当前元素盒模型示意图下方，展示了当前元素的宽和高，默认是根据当前布局自适应后的宽高，可以在这里手动输入值配置当前元素的宽和高。
  
  - 盒模型和宽高配置时，支持"px"、"em"、"%"、"auto"等多种单位。
    图21样式属性配置面板   
    ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944457169.png) 
   
- 字体：设置字体大小、字体样式、颜色等。
- 背景：设置背景颜色、透明度。
- 边框：设置边框颜色、宽度等，支持"px"、"em"和"%"三种单位。
- 阴影：设置阴影颜色、模糊、扩散等，支持"px"、"em"和"%"三种单位。
- 高级设置：在高级设置中，直接编写CSS代码作用于当前元素。如[图22]所示，编写样式代码实现与[图16]相同的布局效果。
  图22自定义CSS代码实现组件居中效果   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910977966.png "点击放大")
  **同一个组件如果在"基本属性"和"样式"中，同时对布局属性进行了设置，最终生效的是"样式"栏中的设置。例如，一个"容器"组件在"基本属性"中勾选了弹性布局，又在"样式 \> 布局"中选择了Block，最终这个"容器"组件中的布局为Block。**
  - 样式源码：组件具体样式代码，组件样式设置后，样式代码将自动显示在"样式源码"中。也可以自定义样式代码，对组件进行详细配置。自定义代码支持多行输入，并高亮显示样式参数。
  
  - 样式类：当前组件使用的CSS样式类名，可在CSS代码中进行引用。
   
 
