老师,您好,关于下面代码
来源: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