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


Posted in Javascript onSeptember 18, 2016

树形结构

树形结构有多种形式和实现方式,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变量等于它的上级导航的时候就显示,否则就隐藏。以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
javascript document.execCommand() 常用解析
Dec 14 Javascript
javascript XMLHttpRequest对象全面剖析
Apr 24 Javascript
js字符串转换成xml对象并使用技巧解读
Apr 18 Javascript
利用js(jquery)操作Cookie的方法说明
Dec 19 Javascript
jquery获取及设置outerhtml的方法
Mar 09 Javascript
javascript实现图片自动和可控的轮播切换特效
Apr 13 Javascript
JavaScript事件类型中UI事件详解
Jan 14 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
Nov 03 Javascript
IE8兼容Jquery.validate.js的问题
Dec 01 Javascript
5分钟学会Vue动画效果(小结)
Jul 21 Javascript
6行代码实现微信小程序页面返回顶部效果
Dec 28 Javascript
Angular 多模块项目构建过程
Feb 13 Javascript
利用jquery实现瀑布流3种案例
Sep 18 #Javascript
JQuery遍历元素的父辈和祖先的方法
Sep 18 #Javascript
移动端js触摸事件详解
Sep 18 #Javascript
AnjularJS中$scope和$rootScope的区别小结
Sep 18 #Javascript
jQuery向父辈遍历的简单方法
Sep 18 #Javascript
js字符串引用的两种方式(必看)
Sep 18 #Javascript
jQuery实现获取元素索引值index的方法
Sep 18 #Javascript
You might like
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
PHP 微信支付类 demo
2015/11/30 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
浅谈python字符串方法的简单使用
2016/07/18 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
python学生管理系统
2019/01/30 Python
Python内置类型性能分析过程实例
2020/01/29 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
人事专员岗位职责范本
2014/03/04 职场文书
高中综合实践活动总结
2014/07/07 职场文书
总经理年会致辞
2015/07/29 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
Python函数对象与闭包函数
2022/04/13 Python
Python 图片添加美颜效果
2022/04/28 Python