ng 树形菜单

代码地址:http://files.cnblogs.com/files/fxnet/%E5%8E%9F%E7%94%9Fjs%E6%8B%96%E6%8B%BD%EF%BC%88%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%EF%BC%89.rar

主要用到了ng的 ng-include跟指令 采用递归的方式可以无限进行遍历树结构。

 

 

<html ng-app="treeDemo">
<body>
    <div ng-controller="TreeController">
        <folder-tree current-folder="folder"></folder-tree>
    </div>
    <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
</body>
</html>

  

<p ng-click="child(currentFolder)">{{currentFolder.name}}</p>  
<ul>  
    <li ng-repeat="subfolder in currentFolder.children"   
        ng-include="'./tree.html'"   
        ng-init="currentFolder = subfolder">  
    </li>  
</ul>  

  

<script>
    angular.module('treeDemo', [])
  .controller("TreeController", function ($scope) {
      $scope.child = function (item) {
          item.children = [{ name: item.name + "2EE"}];
          console.log(item)
      }
      $scope.folder = {
          name: 'techs',
          children: [
            {
                name: 'server-side',
                children: [
                    {
                        name: 'Java',
                        children: [
                            { name: "J2EE" }
                        ]
                    },
                    {
                        name: 'Python'
                    },
                    {
                        name: 'Node'
                    }
                ]
            },
            {
                name: 'front-end',
                children: [
                    {
                        name: 'jQuery'
                    },
                    {
                        name: 'Angular'
                    },
                    {
                        name: 'React'
                    }
                ]
            }
        ]
      }
  })
  .directive("folderTree", function () {
      return {
          restrict: "E",
          scope: {
              currentFolder: '='
          },
          templateUrl: './tree.html',
          link: function ($scope) {
              $scope.child = function (item) {
                  console.log(item)
                  item.children = [{ name: item.name + "2EE"}];
              }
          }
      };
  });

</script>

  

转载于:https://www.cnblogs.com/fxnet/p/6524976.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值