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 相关文章推荐
js 针对html DOM元素操作等经验累积
Mar 11 Javascript
jquery实现类似淘宝星星评分功能有截图
Sep 15 Javascript
jQuery实现点击水纹波动动画
Apr 10 Javascript
JS修改地址栏参数实例代码
Jun 14 Javascript
详解AngularJS中ng-src指令的使用
Sep 07 Javascript
详解javascript事件绑定使用方法
Oct 20 Javascript
jquery表单插件form使用方法详解
Jan 20 Javascript
微信小程序获取用户openId的实现方法
May 23 Javascript
angularjs实现上拉加载和下拉刷新数据功能
Jun 12 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
Jun 20 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 jQuery
vue history 模式打包部署在域名的二级目录的配置指南
Jul 02 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中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
php广告加载类用法实例
2014/09/23 PHP
PHP版本如何选择?应该使用哪个版本?
2015/05/13 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
JavaScript 原型继承
2011/12/26 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
python selenium firefox使用详解
2019/02/26 Python
Python实现把类当做字典来访问
2019/12/16 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
python实现简单文件读写函数
2021/02/25 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
业务总经理岗位职责
2014/02/03 职场文书
个人自查自纠材料
2014/10/14 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
小学教师读书笔记
2015/07/01 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
2016年端午节寄语
2015/12/04 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis