树的渲染问题
来源:9-5 权限模块界面渲染

慕丝8168241
2019-05-28
老师我对前台遍历树的渲染那一块了解的不是那么清楚,没有太理解,为什么有两次的渲染呢function recursiveRenderAclModuleSelect(aclModuleList, level) { level = level | 0; if (aclModuleList && aclModuleList.length > 0) { $(aclModuleList).each(function (i, aclModule) { aclModuleMap[aclModule.id] = aclModule; var blank = ""; if (level > 1) { for(var j = 3; j <= level; j++) { blank += ".."; } blank += "∟"; } optionStr += Mustache.render("<option value='{{id}}'>{{name}}</option>", {id: aclModule.id, name: blank + aclModule.name}); if (aclModule.aclModuleList && aclModule.aclModuleList.length > 0) { recursiveRenderAclModuleSelect(aclModule.aclModuleList, level + 1); } }); } }
还有这一块function recursiveRenderAclModule(aclModuleList) { if (aclModuleList && aclModuleList.length > 0) { $(aclModuleList).each(function (i, aclModule) { aclModuleMap[aclModule.id] = aclModule; if (aclModule.aclModuleList && aclModule.aclModuleList.length > 0) { var rendered = Mustache.render(aclModuleListTemplate, { aclModuleList: aclModule.aclModuleList, "showDownAngle": function () { return function (text, render) { return (this.aclModuleList && this.aclModuleList.length > 0) ? "" : "hidden"; } }, "displayClass": function () { return "hidden"; } }); $("#aclModule_" + aclModule.id).append(rendered); recursiveRenderAclModule(aclModule.aclModuleList); } }) } }
1回答
-
Jimin
2019-05-28
你好,这部分不知道你是否有看视频,这两个函数完成的是两个不同的功能,代码在编写时也是在完全不同的时间点。这两个分别对应的:1、左侧的权限模块树,主要用于展示用;2、用于添加或修改权限模块选择上级模块、添加或修改权限点时选择所属的权限模块,主要用于下拉框里供选择。
00
相似问题