发表于: 2017-02-24 23:56:42

1 1413


一、今天完成的事情:

  1,完成角色编辑角色的页面数据渲染,权限选择的功能。

二、明天要做的事情:

   1,完成角色编辑,新增功能,模块管理页面。

三、遇到的问题:

var modules=[{pid:0,id:1},{pid:1,id:4}]
// 数组中每个对象有两个值,pid为父级id值,id为本身id值。
// pid为0的是父级,pid不为0的为子级,需要找出pid值不为0的子对象存放在与id匹配的父对象中。

var tree = [];
rightFilter(0,null,tree,modules);

//参数(当前id值,存放过滤后的数组,存放结果的数组,原数组)
function rightFilter(id,node, tree, modules) {
   angular.forEach(modules, function (data, index, array) {
       //把数组中的每一个对象赋给module
       var module = data;

       //id参数为父级的id值,初始调用的时候传入的参数是根据原数据里没有父级的对象pid值为0
       //用父级的id值去匹配每个对象的pid值,
       //也就是用父级的id去匹配数组里所有对象的pin如果相等这个值就是他的子级,
       if (module.pid == id) {
           //在次调用函数本身(当前id值,对象本身,存放结果的数组原数组)
           //作用为把每一个对象都当作父级,用自己的id去匹配数组内所有的对象的pid,找匹配的子集
           //直到筛选出数组内没有子集的对象才会进行下一步

           tree = rightFilter(module.id, module, tree, modules);

           if (id == 0) {
               tree.push(module);
           } else {
               if (node.nodes == undefined) {
                   node.nodes = [];
               }
               node.nodes.push(module);
           }
       }
   });
   return tree;
}


今天的收获:



返回列表 返回列表
评论

    分享到