设置AstroZero标准页面输入框组件属性
输入框是基础输入组件,输入框中的内容可以通过鼠标或键盘输入。输入框一般在有需要输入内容、提供组合型条件查询或有其他资料需要提交时使用。
数据绑定
- 值绑定:值绑定类似vue中的v-model语法,组件上创建双向数据绑定。值绑定会根据组件类型,自动选取正确的方法来更新元素。同时,负责监视各类引起绑定数据变化的事件以更新数据。
- 在“数据绑定”中,单击“值(value)绑定”中的,进入选择模型页面。
- 单击“新增模型”,进入新增模型页面。
- 设置模型名称与来源,单击“下一步”。
图2 定义模型
AstroZero支持自定义、对象、服务和事件四类模型,每类模型都包含参数定义和方法定义。方法是在模型上定义的API,通常会在前台组件关联的事件脚本(例如页面加载事件、鼠标单击事件)中调用这些API,以实现某些功能。
表1 模型来源说明 分类
模型说明
模型参数的定义
模型方法的定义
API调用方法
自定义
开发者自行定义的模型。
由开发者自定义,可以添加子节点。
开发者自定义方法。
$model.ref("modelName").actionName();
对象
由Object对象表映射生成,关于对象模型的详细介绍,请参见对象。
系统自动获取Object所有的字段,开发者可以从中选择部分字段作为参数。
系统自动生成查询、保存、删除和统计四个方法。
$model.ref("modelName").query(param);
$model.ref("modelName").save();
$model.ref("modelName").delete();
$model.ref("modelName").count();
服务
参数根据后台服务的入参、出参,映射生成为inputParam和outputParam节点。
系统自动生成run方法 ,用于执行模型关联的服务编排或脚本。
$model.ref("modelName").run();
事件
事件模型由后台事件的字段映射生成,并且支持websocket刷新模型数据。
参数根据后台事件的字段映射生成。
直接使用
直接使用
除了在模型中定义的方法,低代码平台还提供了如下标准API,适用于所有的模型。
- 获取模型数据:$model.ref("modelName").getData();
- 设置模型数据:$model.ref("modelName").setData();
- 设置模型字段值:$model.ref("modelName").setValue(key,value);
- 在新建模型“设置”页面,执行如下操作。
- 上一步来源选择“自定义”,需要添加子节点自定义参数及类型。
- 上一步来源选择“对象”,需要配置模型关联的对象以及字段。
- 上一步来源选择“服务”,需要配置模型关联的后台服务,可以是脚本、服务编排或者公共接口。
- 上一步来源选择“事件”,需要配置模型关联的事件以及事件字段。
- 单击“下一步”,设置方法。
- 设置完成后,单击“确定”。
- 属性值绑定:将容器组件的某个属性,如隐藏、样式、弹性布局等与具体的模型字段相绑定,绑定后组件的属性随模型字段的值变化而变化,类似Vue的v-bind。
- 在“数据绑定”中,单击“属性值绑定”后的“+”。
- 在“属性”下拉框中,选择容器的某个属性。
- 在模型字段中,单击,进入选择模型页面。
- 单击“新增模型”,进入新增模型页面。
- 设置模型名称与来源,单击“下一步”。
AstroZero支持自定义、对象、服务和事件四类模型,每类模型都包含参数定义和方法定义。方法是在模型上定义的API,通常会在前台组件关联的事件脚本(例如页面加载事件、鼠标单击事件)中调用这些API,以实现某些功能。详细介绍,请参见表1。图3 定义模型
基本属性
- 文本类型:设置文本类型,如输入框、密码。
- 标签:输入框在界面的展示标签名,必须是输入框存在于某个表单组件中,该标签设置才生效。
- 占位符:设置占位符,可辅助元素对齐,让页面更整齐。
- 可清空:是否可清空输入值。
- 默认值:输入框默认值。
- 图标:输入框图标,仅在输入框类型下有效。
- 图标位置:输入框中的图标位置。
- 最大字符长度:输入框取值最大字符长度。
- 最大宽度:输入框最大的宽度。
表单校验
- 必填:开启必填时,该输入框为必填字段。输入框界面展示会有提示必填,此校验功能必须是输入框存在于某个表单组件中。
- 必填错误信息:当必填输入框没有进行输入取值时,界面提示的报错信息。
- 正则表达式:当输入框字段类型为“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]+$"); 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代码中进行引用。
- 预设样式:预置的组件样式。
- 样式透传:启用后,可以将设置好的样式透传给组件的子节点。