# 动态解析
动态解析
也就是平常所说的es写法
或函数写法
。它是监听各类数据源
的变化,解析出对应的属性值。
# es写法
es语法
:以es:
为前缀,用特写的字符串代替($
开始,如:$root
)数据源,再按照一定的规则解析出来的js语句。
注意
- 除了数组es语法要遵守大括号(如:{{$root.courses[i].students[i].name}})写法,其它情况可以去掉大括号
支持es有4个数据源
,这4个值共同影响整个es的解析:
rootData
: 整个表单的根值/rootData;root在es语法中的写法是$root
global
: 从表单中传入,用于外部对表单影响, 不设置则默认为空对象
;global在es语法中的写法是$global
index
:数组中孩子节点(非孙子节点)项所在的索引,其它节点(非孩子)节点此值是-1;index在es语法中的写法是$index
hidden
: 用于判断某一项是否隐藏的函数
;hidden在es语法中的写法是$hidden("base.target")
; 括号中是路径;此函数也是表单方法isHidden
# 函数写法
属性直接写成一个函数,再传入相应的参数(数据源)进行动态解析.
运用函数构造Vue属性,options所携带的信息:
global
:form属性的globalrootData
:表单的原始值(隐藏的项值也会取出)root
:也就是rootData
,为了跟$root
保持一致pathKey
:项组件的路径idxChain
: 项组件所要数组所组成的id 如: 1,2index
:项组件处于数组的子节点(非孙子)时的索引,其余的返回-1$hidden
:函数。判断某项是否处于隐藏,这个函数会自动匹配所处于哪个表单,所以参数只需要传入一个pathKey。如: $hidden("base.name")
es写法
完全可以用函数写法
代替; 它们都有自身的优势:es写法
比较简洁,特别是三目运算符中;而函数写法
比较灵活,运用于比较复杂的逻辑。