欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

AngularJS实现树形结构(ztree)菜单示例代码

程序员文章站 2022-05-11 13:55:50
树形结构 树形结构有多种形式和实现方式,ztree可以说得上是一种比较简洁又美观的且实现起来也相对简单。ztree是一个依靠jquery实现的多功能“树插件”。它最大的优...

树形结构

树形结构有多种形式和实现方式,ztree可以说得上是一种比较简洁又美观的且实现起来也相对简单。ztree是一个依靠jquery实现的多功能“树插件”。它最大的优点是配置灵活,只要id与pid的值相同就可形成一个简单的父子结构。再加上免费开源,使用ztree的人越来越多。

效果图如下

AngularJS实现树形结构(ztree)菜单示例代码

首先你需要知道angularjs的双向数据绑定是什么才可以更好的理解下面的代码,想了很久才想出用下面的代码来实现左侧菜单树形结构

要实现上面的功能你需要操作如下步骤:

在html标签内添加ng-app,让angularjs掌管整个html文档

<html lang="en" ng-app="myapp">

myapp是我自己创建的模块

整个菜单的标签如下

<div id="left-menu" ng-controller="left-navigation" class="col-sm-2" style="margin-top: 50px">
  <ul>

    <!-- 仪表盘 -->
    <li>
  <!-- 让每一个一级菜单绑定一个函数navfunc,并且传入一个指定的字符串 -->
      <a href="" ng-click="navfunc('dashboard')">仪表盘</a>
    </li>

    <!-- 主机 -->
    <li>
      <span><a ng-click="navfunc('hosts')" href="">主机</a></span>
      <!-- 如果要显示二级菜单,则navaction必须等于制定的字符串,这个是自己定义的,navaction是在controller中创建的 -->
  <ul ng-show="navaction === 'hosts'">
        <li><a href="">主机</a></li>
        <li><a href="">分组</a></li>
      </ul>
    </li>

    <!-- 容器 -->
    <li>
      <a href="" ng-click="navfunc('container')">容器</a>
    </li>

    <!-- 模板 -->
    <li>
      <span><a href="" ng-click="navfunc('template')">模板</a></span>
      <ul ng-show="navaction === 'template'">
        <li><a href="">监控</a></li>
        <li><a href="">装机</a></li>
      </ul>
    </li>

    <!-- 用户 -->
    <li>
      <span><a href="" ng-click="navfunc('users')">用户</a></span>
      <ul ng-show="navaction === 'users'">
        <li><a href="">修改资料</a></li>
        <li><a href="">修改密码</a></li>
        <li><a href="">添加用户</a></li>
        <li><a href="">消息</a></li>
      </ul>
    </li>

    <!-- 配置 -->
    <li>
      <a href="" ng-click="navfunc('configuration')">配置</a>
    </li>

  </ul>
</div>

js代码如下

// 创建myapp模块
var myapp = angular.module('myapp', [])

// 创建一个controller,名为left-navigation
myapp.controller('left-navigation', ['$scope', function ($scope) {
  // 定义一个函数navfunc, 接受一个参数
 $scope.navfunc = function (arg) {
 // 让navaction变量等于函数传入过来的值arg
    $scope.navaction = arg;
  };
}]);

总结

整体的思路其实就是点击一级导航的时执行一个函数,并把一级导航的名称发送给函数,然后二级导航在navaction变量等于它的上级导航的时候就显示,否则就隐藏。以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。