>= 1.0.0
cascader 类型说明:cascader
类型用来模拟一个多级联动的数据,针对 Nodejs 环境和浏览器环境,配置上有细微差别。
根节点书写方式
针对 Nodejs 环境
:cascader:&<dataDir>/cascader.json:#[root=true]
&
路径数据属性配置,后接需要指向的联动数据#[]
配置参数数据属性,包含两个参数root
必选,需要标记为 true。handle
可选,处理级联的函数句柄,函数包含两个参数,第一个参数为从路径获取到的联动数据,第二个参数为已经获取到的从第一层到当前层的数据数组。如不提供,Suchjs 默认提供了一个处理对象形式数据的处理函数。可以参见源代码里的 src/helpers/utils.ts
针对浏览器环境
:cascader:#[root=true,data=xxx]
注:从v2.1.7后,root
配置参数不再必须,更加简洁。和 Nodejs 环境不一样,浏览器下需要和 dict 词典一样主动注入一个 data 参数数据,以替代 Nodejs 环境下通过文件路径获取数据的形式。
#[]
配置参数数据属性,和 Nodejs 环境一样,但多增加了一个 data 参数配置。
联动子节点书写方式
联动子节点的书写方式在 Nodejs 环境和浏览器端没有什么差别,它们都只需要像
:ref
类型一样,提供一个路径引用。&
路径数据属性,后接一个上一级数据的字段。
// 联动菜单json数据,在 Nodejs 下提供结构类似浏览器示例下的city变量的json文件
// Nodejs 环境
const instance = Such.instance({
province: ":cascader:&<dataDir>/city.json:#[root=true]",
city: ":cascader:&./province",
area: ":cascader:&./city",
});
// 浏览器下
const city = {
北京市: {
北京市: ["朝阳区", "海淀区"],
},
湖北省: {
武汉市: ["洪湖区", "东西湖区"],
},
};
Such.assign('city', city);
const instance = Such.instance({
province: ":cascader:#[root=true,data=city]",
city: ":cascader:&./province",
area: ":cascader:&./city",
});
// 模拟数据
instance.a();
// 输出数据类似:
/*
{
province: "北京市",
city: "北京市",
area: "朝阳区"
}
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32