
# 设置华为云Astro轻应用标准页面输入框组件属性
输入框是基础输入组件，输入框中的内容可以通过鼠标或键盘输入。输入框一般在有需要输入内容、提供组合型条件查询或有其他资料需要提交时使用。
图1输入框组件   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944664525.png "点击放大")
#### 数据绑定
标准页面中的组件，通过建立不同类型的视图模型，将各种数据源和组件的返回值或者属性值进行关联，实现动态数据效果。
- 值绑定：值绑定类似Vue中的v-model语法，组件上创建双向数据绑定。值绑定会根据组件类型自动选取正确的方法来更新元素。同时，负责检测各类引起绑定数据变化的事件以更新数据。
  1. 在"数据绑定"中，单击"值（value）绑定"中的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910981938.png)，进入选择模型页面。
  
  2. 单击"新增模型"，进入新增模型页面。
  
  3. 设置"模型名称"与"来源"，单击"下一步"。
     图2定义模型   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911143054.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);*
      
  
  4. 在新建模型"设置"页面，执行如下操作。
     - 上一步来源选择"自定义"，需要添加子节点自定义参数及类型。
     
     - 上一步来源选择"对象"，需要配置模型关联的对象以及字段。
     
     - 上一步来源选择"服务"，需要配置模型关联的后台服务，可以是脚本、服务编排或者公共接口。
     
     - 上一步来源选择"事件"，需要配置模型关联的事件以及事件字段。
      
  
  5. 单击"下一步"，设置方法。 方法一般无需添加，如需添加或修改，可参考对象和服务默认生成的方法。
     
  
  6. 设置完成后，单击"确定"。
   
- 属性值绑定：将容器组件的某个属性，如隐藏、样式、弹性布局等与具体的模型字段绑定，绑定后组件的属性随模型字段的值变化而变化，类似Vue的v-bind。
  1. 在"数据绑定"中，单击"属性值绑定"后的"+"。
  
  2. 在"属性"下拉框中，选择容器的某个属性。
  
  3. 在模型字段中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911145882.png)，进入选择模型页面。
  
  4. 单击"新增模型"，进入新增模型页面。
  
  5. 设置模型名称与来源，单击"下一步"。
     华为云Astro轻应用支持自定义、对象、服务和事件四类模型，每类模型都包含参数定义和方法定义。方法是在模型上定义的API，通常会在前台组件关联的事件脚本（例如页面加载事件、鼠标单击事件）中调用这些API，以实现某些功能。详细介绍，请参见[表1]。
     图3定义模型   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944465069.png "点击放大") 
  
  
  
  6. 在新建模型"设置"页面，执行如下操作。
     - 上一步来源选择"自定义"，需要添加子节点自定义参数及类型。
     
     - 上一步来源选择"对象"，需要配置模型关联的对象以及字段。
     
     - 上一步来源选择"服务"，需要配置模型关联的后台服务，可以是脚本、服务编排或者公共接口。
     
     - 上一步来源选择"事件"，需要配置模型关联的事件以及事件字段。
      
  
  7. 单击"下一步"，设置方法。 方法一般无需添加，如需添加或修改，可参考对象和服务默认生成的方法。
     
  
  8. 设置完成后，单击"确定"。
   
 
#### 基本属性
基本属性通过数据绑定后，在运行时以数据绑定的值为准。
- 文本类型：设置文本类型，如输入框、密码。
- 标签：输入框在界面展示的标签名，必须是输入框存在于某个表单组件中，该标签设置才生效。
- 占位符：设置占位符，可辅助元素对齐，让页面更整齐。
- 可清空：是否可清空输入值。
- 默认值：输入框默认值。
- 图标：输入框图标，仅在输入框类型下有效。
- 图标位置：输入框中的图标位置。
- 最大字符长度：输入框取值最大字符长度。
- 最大宽度：输入框最大的宽度。
 
#### 表单校验
当组件在表单中时，可对组件进行一些校验配置。当且仅当组件在表单中时，校验才生效。
- 必填：开启必填时，该输入框为必填字段。输入框界面展示会有![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911348092.png)提示必填，此校验功能必须是输入框存在于某个表单组件中。
- 必填错误信息：当必填输入框没有进行输入取值时，界面提示的报错信息。
- 正则表达式：当输入框字段类型为"Text"或"TextArea"类型，支持进行正则表达式校验。
- 错误信息：正则表达式校验失败时，提示的错误信息。
- 自定义校验：是否进行自定义校验，打开后需要设置校验JS代码。当输入框在表单组件中，该设置才会生效。
- 校验方法：输入JS代码定义校验规则，代码的返回值必须为布尔类型或者对象类型。
  - 布尔类型：返回为"false"表示未通过校验，即校验失败，如果需要配置错误提示信息，则直接设置界面上"校验错误信息"参数；返回值为"true"，表示通过校验。
  
  - 对象类型：返回为"{result:false, message:'*对应错误提示信息*'}"，表示未通过校验，message值为错误提示信息；返回为"{result:true}"，表示校验通过，一般不用带提示信息。
  
  
  示例如下：
  - 示例1：校验输入文字内容长度不能超过10个字符。
    ```
    return value.length <= 10
    ```
    其中，"value"变量为系统已定义好的，表示输入内容变量，可直接使用该变量。
    
  
  - 示例2：校验输入文字内容只能输入大写的A-Z，或者小写的a-z。
    返回值类型为布尔：
    ```
    var reg = new RegExp("^[A-Za-z]+$");
    return reg.test(value);
    ```
    返回值类型为对象：
    ```
    var reg = new RegExp("^[A-Za-z]+$");
    if (reg.test(value)) {
     return true;
    } else {
      return {result: false, message:'输入内容不符合规则，只能输入大写的A-Z，或者小写的a-z'};
    }
    ```
    
  
  - 示例3：校验输入文字内容是否是邮箱，该示例可能不覆盖全部邮箱类型场景，仅举例使用。示例JS代码如下：
    ```
    var reg = new RegExp("^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$");
    return reg.test(value);
    ```
    
   
- 校验错误信息：当"自定义校验"中，JS代码返回值类型为布尔类型时，会取该参数的值为错误提示信息。当"自定义校验"中JS代码返回值类型为对象类型时，直接取返回值中的message值为错误提示信息。
 
#### 公共
- 控件名称：当前组件的名称。
- 隐藏：是否隐藏该组件，此方式为静态配置该组件的隐藏。还可以将该组件属性值"隐藏"配置为布尔类型模型字段，在自定义JS代码中来控制模型字段取值，从而设置该组件是否隐藏，这种动态设置优先级是最高的。
- 禁用：是否禁用该组件。
- 只读：值是否只读。
 
#### 样式
- 样式类：当前组件使用的CSS样式类名，可在CSS代码中进行引用。
- 预设样式：预置的组件样式。
- 样式透传：启用后，可以将设置好的样式透传给组件的子节点。
 
