zTree中设置idKey跟pId对象关联
在使用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]);}}}