# 事件处理
为了满足实际项目中的业务逻辑,FormBuilder
也提供了几种处理表单事件的方式。
# 表单事件
在某些场景下,你可能需要在表单元素内部触发整体页面的事件,此时,可以通过 FormBuilder
定义的事件 command
来实现该功能。
表单元素触发事件示例:
// component `foo`
{
someAction() {
this.$emit('command', 'doSomething', 123456);
}
};
整体页面处理事件示例:
<form-builder @command="handleCommand"></form-builder>
{
handleCommand(cmd, ...args) {
// cmd: doSomething
// args: [123456]
}
};
# 组件联动
不同的表单元素之间,通常有某些联动关系。在 FormBuilder
中,由于我们把整个表单的数据模型 formValues
传递给了每个表单元素,因此可以通过这个它来监听其它组件的变化。
// component `foo`
{
watch: {
'formValues.bar': {
handler() {
// do something when the value of `bar` changes
},
deep: true
}
},
}