老师,您好,部门树我明白了,但是我对这个Mustache渲染的还是有点疑问,

来源:7-6 部门列表树型结构界面开发

心纯净

2019-01-05

下面的代码:

1,其中的

var rendered = Mustache.render(deptListTemplate, {deptList: result.data});

这行代码就能准确的渲染树的所有第一层吗?这个原理是什么呢?或者说如何实现的呢?

2,对于子部门的渲染:

var rendered = Mustache.render(deptListTemplate, {deptList: dept.deptList});
$("#dept_" + dept.id).append(rendered);

这里的append是加到元素上去,是将样式加到这个元素上吗?

3,我自己对于前端这些内容不是很懂,准确的说是Mustache渲染过程不是很懂,麻烦老师耐心讲解一下,感激不尽。

function loadDeptTree() {
    $.ajax({
        url: "/sys/dept/tree.json",
        success: function (result) {
            if (result.ret) {
                deptList = result.data;
                var rendered = Mustache.render(deptListTemplate, {deptList: result.data});
                console.log(deptList);
                $("#deptList").html(rendered);
                recursiveRenderDept(deptList);
            } else {
                showMessage("加载部门列表", result.msg, false);
            }
        }
    });

}

//递归渲染部门树
function recursiveRenderDept(deptList) {
    if (deptList && deptList.length > 0) {
        $(deptList).each(function (i, dept) {
            deptMap[dept.id] = dept;
            if (dept.deptList.length > 0) {
                var rendered = Mustache.render(deptListTemplate, {deptList: dept.deptList});
                $("#dept_" + dept.id).append(rendered);
                recursiveRenderDept(dept.deptList);
            }
        });
    }

}


写回答

2回答

Jimin

2019-01-05

你好,那个append方法是往指定dom上拼上一段html,可以包含样式,直接会影响展示。
至于其他的写法都是按照mustache语法要求来写的,由于我是后端开发人员,确实没去研究过mustache的源码实现,因此他的渲染细节我也不是完全清楚。前端这里你可以尝试找慕课上的前端大神们聊聊,向他们取取经,应该会收获更多。

0
0

心纯净

提问者

2019-01-05

还有就是,下图的层级效果是通过自定义的样式加上ol和li标签配合完成的?

//img.mukewang.com/szimg/5c3022e00001e61b19200901.jpg

1
0

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

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

2260 学习 · 1347 问题

查看课程