# 层级关系

理解了以上的影响范围之后我们再来理解一下数据的层级关系。
在一个字段中执行的动态时引用到另一个字段,那么另一个字段的值或者引用是单个数据,还是是一个数组由这两个字段的相对层级关系决定。

例如,重复节表里有2个字段fieldRepeatEdit,fieldRepeatSelect,这个重复节表名称为groupRepeat,这个重复节表外层有2个字段fieldText、fieldCheck,groupRepeat下还有一个重复节groupRepeatInner,里面有个字段fieldInnerRepeatText。层级关系如图所示:

那么当在fieldText的动态中引用fieldCheck或groupRepeat时,他们就是单值;如果引用fieldRepeatEdit或fieldRepeatSelect时,他们的值或者引用就是数组。如果在fieldRepeatEdit中引用fieldRepeatSelect、groupRepeat、fieldText、fieldCheck时,他们都是单值,如果引用fieldInnerRepeatText时就是数组。在这个例子中,fieldInnterRepeatText引用哪个字段都是个单值。以下层级关系表罗列了这个例子里所有字段间相互引用时是单值还是数组

层级关系表
被引用字段→
引用字段 ↓
fieldCheck fieldText groupRepeat fieldRepeatEdit fieldRepeatSelect groupRepeatInner fieldInnerRepeatText
fieldCheck 数组 数组 数组 数组的数组
fieldText 数组 数组 数组 数组的数组
groupMember 数组 数组 数组 数组的数组
fieldRepeatEdit 数组
fieldRepeatSelect 数组
groupRepeatInner 数组
fieldInnerRepeatText

如果groupRepeat有2行数据,fieldRepeatEdit的值分别为'1','2',那么当fieldCheck的动态里引用fieldRepeatEdit的值时,$fieldRepeatEdit的值实际就是['1','2']。
如果groupRepeat的这两行数据下的groupRepeatInner分别有1行和2行数据,第一行groupRepeat数据里的fieldInnerRepeatText内容为'text1',第二行groupRepeat数据里的两行groupRepeatInner里的fieldInnerRepeatText分别为'text2'、'text3',那么当fieldCheck的动态里引用fieldInnerRepeatText的值时,$fieldInnerRepeatText的值实际是[['text1'],['text2','text3']]

一句话概括层级关系

引用同级或者父级是单值,引用儿子是数组,引用孙子是数组的数组。