自定义属性
通过自定义属性可以实现一些针对业务逻辑处理生成规则的扩展
内置的自定义属性
- 必填验证: required
- 远程数据加载: fetch
- 静态数据加载: loadData
- 组件内自定义验证: componentValidate
教程
- 定义一个自定义属性扩展
js
const optionEffect = {
//自定义属性的名称
name: 'option',
//属性绑定的组件,不设置或者'*'默认为全部组件
components: '*',
//rule初始化
init({value}, rule, fapi) {
},
//rule开始加载
load({value}, rule, fapi) {
},
//rule初始化完
created({value}, rule, fapi) {
},
//rule加载完成
loaded({value}, rule, fapi) {
},
//属性值发生变化
watch({value}, rule, fapi) {
},
//组件的值发生变化
value({value}, rule, fapi) {
},
//control 生效
control({value}, rule, fapi) {
},
//rule 移除
deleted({value}, rule, fapi) {
},
//rule 生成
mounted({value}, rule, fapi) {
}
}
const optionEffect = {
//自定义属性的名称
name: 'option',
//属性绑定的组件,不设置或者'*'默认为全部组件
components: '*',
//rule初始化
init({value}, rule, fapi) {
},
//rule开始加载
load({value}, rule, fapi) {
},
//rule初始化完
created({value}, rule, fapi) {
},
//rule加载完成
loaded({value}, rule, fapi) {
},
//属性值发生变化
watch({value}, rule, fapi) {
},
//组件的值发生变化
value({value}, rule, fapi) {
},
//control 生效
control({value}, rule, fapi) {
},
//rule 移除
deleted({value}, rule, fapi) {
},
//rule 生成
mounted({value}, rule, fapi) {
}
}
- 挂载自定义属性
js
formCreate.register(optionEffect)
formCreate.register(optionEffect)
- 在规则中使用自定义属性
js
{
type:'...',
effect:{
//option 是自定义的属性名称
option:'any'
}
//...
}
//或者
{
type:'...',
//option 是自定义的属性名称
$option:'any'
//...
}
{
type:'...',
effect:{
//option 是自定义的属性名称
option:'any'
}
//...
}
//或者
{
type:'...',
//option 是自定义的属性名称
$option:'any'
//...
}
示例
自动设置组件的 options
监听组件value
变化
监听自定义属性变化