树的渲染问题

来源: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、用于添加或修改权限模块选择上级模块、添加或修改权限点时选择所属的权限模块,主要用于下拉框里供选择。

0
0

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2260 学习 · 1347 问题

查看课程