EasyUI之树递归,前端隐藏没有获取到权限的节点

最近项目需要前端自己保存菜单的json节点,后台只返回节点的权限有无,即生成的树是前端生成,这里我们用到easyui tree的loadFilter时间代码如下:

function initJsontree(jsontree) {
				for(var i = 0; i < jsontree.length; i++) {
					var jn = jsontree[i];
					if(jn.code!='group'){
				if(!authTree.indexOf(jn.code)) {
						jsontree.splice(i, 1)
						return;
					}
					}
					if(jn.children && jn.children.length > 0) {
						initJsontree(jn.children);
					}
				}
				filterInitJsontree(jsontree)
}
function filterInitJsontree(json){
    	       for (var i = 0; i < json.length; i++) {  
            var jn = json[i];  
            if (jn.children&&jn.children.length == 0) { 
               json.splice(i,1)
                return;  
            }  
            if (jn.children && jn.children.length > 0) {  
                filterInitJsontree(jn.children);  
            }  
        } 
}
initJsontree函数用来根据authTree 规则来删除对应json节点,如果子节点全部被删除,那么它对应的父节点也应该被删除,所以调用 filterInitJsontree函数

由于我这里的authTree 是个数组[orz,user,bill.......]是平面的,所以构造数组方法indexOf,代码如下:

Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) return true; } return false; };





你可能感兴趣的:(EasyUI之树递归,前端隐藏没有获取到权限的节点)