1. 程式人生 > >第八篇:ZTree操作總結

第八篇:ZTree操作總結

花了一個多星期,終於完成了這個完整的功能,今天週五是時候總結下加深理解了。

專案要實現的功能:
將樹形目錄釋出到釋出庫,
若是根目錄,沒有釋出,連同自己和下面所有的子目錄們全部發布;
不是根目錄,判斷父目錄是否已經發布,未釋出,連同自己全部發布;已釋出,追加

轉化為節點就是:將節點複製另一個已知根節點(釋出庫)之下,複製之前先判斷下,按正常人的思維加就行了
邏輯就不說了,我現在都記不清了到底有多少邏輯在裡面,涉及到各種判斷,遞迴拼接屬性值的,在此只記錄下用的非常多的幾個屬性和方法,假設當前節點叫Node,json代表標準的json格式資料
一、節點treeNode操作
1、獲取子節點
node.children
這是屬性不是方法,返回節點的子節點資料集合Array(JSON),判斷直接用if(node.children) 2、獲取父節點
Node.getParentNode();
返回父節點物件,根節點的話返回null
3、是否是父節點
Node.isParent
就是有咩有兒子
4、節點在哪一級
Node.level,0可以判斷根節點,後面依次+1
5、節點名
Node.name


二、zTree的方法
1、獲取複選框被勾選的節點
zTree.getCheckedNodes(checked)
返回Array(JSON)
2、獲取被選中的節點
zTree.getSelectedNodes()
注意和1的區別,返回Array(JSON)
3、根據匹配的屬性和值對,在指定節點下搜尋
zTree.getNodesByParamFuzzy(key,value,Node)
比如我要找釋出庫這個節點就是
var fbkNode = zTree.getNodesByParamFuzzy("name", "釋出庫", null)
我又要在釋出庫節點下找框架集這個節點
var kjjNode = zTree.getNodesByParamFuzzy("name", "框架集", fbkNode[0])
注意返回的都是節點資料集合
4、獲取節點及其所有子節點,子節點的子節點的子節點
zTree.transformToArray(Node)
返回包括本節點在內的所有子節點的集合,非常方便