zTree中设立idKey跟pId对象关联
zTree中设置idKey跟pId对象关联
在使用zTree过程中,突然发现他的idkey跟pid必须指定一个单纯的主外键,而不能使用对象解析来绘制树(如:parentModule.id),于是查看了源码,经过改装之后支持了对象关联的遍历,特此做下记录,希望对遇到同样问题的朋友有所帮助。
注意:此种做法针对于ztree3.5版本的。
首先打开ztree的核心源码。jquery.ztree.core-3.5.js找到594行起,修改成如下,然后setting中的data的pidkey写parentModule.id即可
在使用zTree过程中,突然发现他的idkey跟pid必须指定一个单纯的主外键,而不能使用对象解析来绘制树(如:parentModule.id),于是查看了源码,经过改装之后支持了对象关联的遍历,特此做下记录,希望对遇到同样问题的朋友有所帮助。
注意:此种做法针对于ztree3.5版本的。
首先打开ztree的核心源码。jquery.ztree.core-3.5.js找到594行起,修改成如下,然后setting中的data的pidkey写parentModule.id即可
for (i=0, l=sNodes.length; i<l; i++) { if(parentKey.indexOf('.')!=-1){ var parent = sNodes[i]; parent = parseData(parent,parentKey); if (tmpMap[parent] && sNodes[i][key] != parent) { if (!tmpMap[parent][childKey]) tmpMap[parent][childKey] = []; tmpMap[parent][childKey].push(sNodes[i]); } else { r.push(sNodes[i]); } }else{ if (tmpMap[sNodes[i][parentKey]] && sNodes[i][key] != sNodes[i][parentKey]) { if (!tmpMap[sNodes[i][parentKey]][childKey]) tmpMap[sNodes[i][parentKey]][childKey] = []; tmpMap[sNodes[i][parentKey]][childKey].push(sNodes[i]); } else { r.push(sNodes[i]); } } }