老师,您好,关于下面代码
来源:9-5 权限模块界面渲染
心纯净
2019-01-16
下面代码中的
return function (text, render) {
return (this.aclModuleList && this.aclModuleList.length > 0) ? "" : "hidden";
}这段代码中的形参text,render如何理解呢?这里有传递参数?或者调用这个函数吗?
为什么不直接return (this.aclModuleList && this.aclModuleList.length > 0) ? "" : "hidden";呢
function loadAclModuleTree() {
$.ajax({
url: "/sys/aclModule/tree.json",
success : function (result) {
if(result.ret) {
aclModuleList = result.data;
var rendered = Mustache.render(aclModuleListTemplate, {
aclModuleList: result.data,
"showDownAngle": function () {
return function (text, render) {
return (this.aclModuleList && this.aclModuleList.length > 0) ? "" : "hidden";
}
},
"displayClass": function () {
return "";
}
});
$("#aclModuleList").html(rendered);
recursiveRenderAclModule(result.data);
bindAclModuleClick();
} else {
showMessage("加载权限模块", result.msg, false);
}
}
})
}写回答
2回答
-
你好,这个属于利用mustache的语法规则,aclModuleList: result.data 这一步相当于指定了模板使用的数据aclModuleList,后面写的方法相当于遍历aclModuleList每一项时调用的参数。
return function (text, render) {
return (this.aclModuleList && this.aclModuleList.length > 0) ? "" : "hidden";
}
这一步其实是遍历最顶层aclModuleList时每一项,检查每一个子项aclModuleList并进行处理,你这里说的这种写法和课程里的不同点在于,你的写法里的aclModuleList是最顶层的aclModuleList,就是result.data
032019-01-19 -
心纯净
提问者
2019-01-16
老师,您好,我直接写return (this.aclModuleList && this.aclModuleList.length > 0) ? "" : "hidden";
效果就是下面的,这是为什么呢?
00
