# 表单相关概念

# 根值

rootData: 表单中所有的值,包含隐藏的;也就是说有什么值就取什么值出来;用于操作表单项组件的逻辑控制

# 表单值

formValue: 表单中用户所需要的值(一般不包含隐藏的值、临时值;场景如下);用于数据提交;可认为formValue是rootData的一个子集。

影响formValue的场景:

  • 在表单逻辑控制中,一般隐藏的表单项组件不需要提交的(若需要提交, 可设置hdValue);
  • 在表单逻辑控制中,隐藏的表单项组件需要提交的指定的值(可设置hdValue);
  • 表单项组件件显示中,有的值只是显示,但并不需要提交(可设置isTmp)

# 索引链

idxChain: 指出表单项组件所处于数组的位置
如:base.student[0].courses[1].name, 如索引链为"0,1"; 当父节点或祖先节点不是数组时,则表单项组件空字符

应用场景:项组件事件项组件验证数组事件所携带的信息会返回此值

# 项组件路径

pathKey: 表单项组件位置的具体路径. 如:

base.student[0].courses[1].name // 推荐的写法
base.target.name        // 推荐的写法
base.target["name"]

生成形式见表单值/value

应用场景:项组件事件项组件验证数组事件所携带的信息会返回此值; form.setValue等需要此值设置

# es语法

es语法就一条es:为前缀的字符串,再按照一定的规则解析出来的js语句。
如:
es: $root.isJson ? "JSON格式" : "XML格式"
说明:字符串以es:开头,用表单根数据代替$root, 最终变为
rootData.isJson ? "JSON格式" : "XML格式"

支持es有4个数据源,这4个值共同影响整个es的解析:

  1. rootData: 整个表单的根值/rootData. root在es语法中的写法是$root
  2. global: 从表单中传入,用于外部对表单影响, 不设置则默认为空对象; global在es语法中的写法是$global
  3. index:数组中孩子节点(非孙子节点))项所在的索引,其它节点(非孩子)节点此值是-1. index在es语法中的写法是$index
  4. hidden: 用于判断某一项是否隐藏. hidden在es语法中的写法是$hidden("base.target"); 括号中是路径

es写法