layui生成菜单
thymeleaf渲染
1
<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
<li data-name="home" th:each="menuIndex: ${data}" class="layui-nav-item">
<a href="javascript:;" lay-direction="2">
<cite><span th:text="${menuIndex.name}"></span></cite>
</a>
<dl class="layui-nav-child" th:each="childNode: ${menuIndex.children}" >
<dd data-name="console" th:if="${#lists.isEmpty(childNode.children)}" >
<a th:lay-href="${childNode.url}" th:text="${childNode.name}"></a>
</dd>
<dd data-name="form" th:if="${not #lists.isEmpty(childNode.children)}">
<a href="javascript:;" th:text="${childNode.name}"></a>
<dl class="layui-nav-child" th:each="childNodetwo: ${childNode.children}">
<dd><a th:lay-href="${childNodetwo.url}" th:text="${childNodetwo.name}"></a> </dd>
</dl>
</dd>
</dl>
</li>
</ul>
2
<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
<li data-name="home" th:each="menuIndex: ${data}" th:class="${menuIndex.getId()==1}?'layui-nav-item layui-nav-itemed':'layui-nav-item'">
<a href="javascript:;" lay-direction="2">
<i class="layui-icon layui-icon-home"></i>
<cite><span th:text="${menuIndex.name}"></span></cite>
</a>
<dl class="layui-nav-child" th:each="childNode: ${menuIndex.children}" th:switch = "${childNode.children.size()==0 }">
<dd th:case="true" data-name="console" th:class="${childNode.getId()==11}?'layui-this'" >
<a th:lay-href="${childNode.url}" th:text="${childNode.name}"></a>
</dd>
<dd th:case="false" data-name="form">
<a href="javascript:;" th:text="${childNode.name}"></a>
<dl class="layui-nav-child" th:each="childNodetwo: ${childNode.children}">
<dd><a th:lay-href="${childNodetwo.url}" th:text="${childNodetwo.name}"></a></dd>
</dl>
</dd>
</dl>
</li>
</ul>
js渲染
<script>
layui.config({
base: '[[@{/layuiadmin/}]]' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'user', 'element', 'form'], function () {
var $ = layui.$
, setter = layui.setter
, admin = layui.admin
, form = layui.form
, router = layui.router()
, search = router.search
, element = layui.element;
$.ajax({
url: "/manage/findMenu",
success: function (succ) {
console.log(succ);
for (var i = 0; i < succ.data.length; i++) {
if (succ.data[i].url == '#') {
var str1 = '<a href="javascript:;" lay-tips=' + '"' + succ.data[i].url + '"' + ' lay-direction="2" >'
+ '<cite>' + succ.data[i].name + '</cite></a>';
}
var str2 = '';
var str0 = '';
var str3 = '';
var str8='';
var str9='';
var arr = succ.data[i].children;
for (var j = 0; j < arr.length; j++) {
str0 = '<dl class="layui-nav-child">';
str3 = '</dl>';
str8= '</dd>';
var str7 = '';
var arr1 = arr[j].children;
if(arr1.length>0){
str2 = '<dd data-name="form"><a lay-href=' + '"' + arr[j].url + '"' + '>' + arr[j].name + '</a>';
}else{
str2 = '<dd data-name="console"><a lay-href=' + '"' + arr[j].url + '"' + '>' + arr[j].name + '</a>';
}
if (arr1.length == 0){
}else {
for (var j1 = 0; j1 < arr1.length; j1++) {
str7 += '<dl class="layui-nav-child">'
+ '<dd><a lay-href=' + '"' + arr1[j1].url + '"' + '>' + arr1[j1].name + '</a></dd>'
+ '</dl>'
}
}
str9 +=str0+str2+str7+str8+str3;
}
var str4 = '<li data-name="home" class="layui-nav-item">';
var str5 = '</li>';
var str6 = str4 + str1 +str9+ str5;
$("#layadmin-system-side-menu").append(str6);
element.init();
}
}
, error: function () {
layer.msg("请求失败");
}
});
});
</script>
页面 id要和lay-filter 一样
<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="layadmin-system-side-menu"
lay-filter="layadmin-system-side-menu">