总结分享下我关于这个插件的使用与体会,三个方面
- 插件作用
- 使用流程
- 数据库表数据
- 获取所有数据
- 数据处理
- 页面显示
- 搭载checkbox
- 页面显示
- 子父级联动
- 回显
- 坑
插件作用
具备所有tree插件的特点,显示分支形式的数据,可折叠,可修改,添加同级别,子级别数据。实际应用:例如 组织机构树,本篇我们将用此案例进行演示。
angular-ui-tree还有如下特点:
1.使用本地AngularJS范围数据绑定
2.整个树都可以进行排序和移动项目
官方demo截图
数据源
1 | [ |
使用流程
本小节按照以下流程进行:
- 数据库表结构
- 获取所有数据
- 数据处理
- 页面显示
- 搭载checkbox
- 页面显示
- 子父级联动
- 回显
1 | 为了便于大家的学习与使用,我以一个完整的案例进行演示。大家可酌情选看适合自己的小小节。 |
数据库表结构
table_name :party_group
机构id | 上级id | 机构名称 | 级别 | 能否有下一级 |
---|---|---|---|---|
nId | nPid | vcName | nLevel | bLeaf |
1 | 0 | 万源实业集团党委 | 1 | 1 |
2 | 0 | 航天一院院党委 | 1 | 1 |
3 | 1 | 建筑公司党支部 | 2 | 1 |
4 | 3 | 建筑第一党小组 | 3 | 0 |
5 | 3 | 建筑第二党小组 | 3 | 0 |
6 | 3 | 建筑第三党小组 | 3 | 0 |
7 | 3 | 建筑第四党小组 | 3 | 0 |
获取所有数据
1 | select * from party_group |
后台简单的查询所有就可以,数据处理交给自由的js。
1 | //获取机构 |
这里有三个注意的点
- js 既不是按值传递(call by value),也不是按引用传递(call by reference),而是按共享传递 (call by sharing),这决定了
topArray
的数据为第一级列表与所有后代数据的集。 - 交由
template
处理的数据data
,类型必须为array
。 - 每层数据对象都要包含自己的子对象数组属性,我这里起名为
subGroup
,以供页面模板嵌套生成。
页面显示
1 | <!-- 模板部分,包含折叠,添加,修改,删除功能 --> |
好了,现在就可以查看效果了
搭载checkbox
在模板上添加checkbox
1 | <!-- 模板部分,包含折叠,勾选功能 --> |
效果图
1 |
|
回显的思想
- 获取已选择的机构的集
- 根据1的集,标记所有机构对象的
isChecked
属性 - 模板生成
坑
提供给模板的数据必须是数组Array类型,单个元素的话,页面生成会看不到数据,只有空白的条条,试了很久才发现,有点难受。
就写到这里,欢迎指教~
最后更新于 2018-05-10