需求:管理员登录后台后可以为角色添加菜单,同时要能看到该角色已经拥有的菜单。
想法一:刚开始写的时候很迷茫,因为我们有可能会为该角色增加别的菜单,所以不能只加载该角色已经拥有的菜单,只加载该角色的菜单——PASS掉
想法二:
然后我就行想到了先加载全部菜单然后再找到该角色已经拥有的菜单的id,再进行匹配打勾。
1 $(document).ready(function(){ 2 //先加载所有菜单 3 $.ajax({ 4 type: 'get', 5 url: '/###########', 6 datatype: "json", 7 success: function(data) { 8 $.fn.zTree.init($("#menuTree"), setting, data); 9 var treeObj = $.fn.zTree.getZTreeObj("menuTree"); 10 treeObj.expandAll(true); //默认为展开状态 11 12 var roleids=$("#roleid").val(); //从上个页面传入的角色id 13 //得到该角色拥有的菜单,进行匹配打勾 14 $.ajax({ 15 type: 'get', 16 url: '/#####################', 17 data:{roleid:roleids}, 18 success: function(res) { 19 for(var i=0;i<res.length;i++){ 20 treeObj.checkNode( treeObj.getNodeByParam( "id",res[i].id ), true ); //进行打勾 21 } 22 } 23 }) 24 } 25 }); 26 }); 27 });
进入该页面时,很直观的就能看到该角色所拥有的菜单以及未拥有的菜单。 √