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游戏之是男人就下100层代码打包
Nov 08 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
Jun 28 Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 Javascript
详细解读JavaScript编程中的Promise使用
Jul 27 Javascript
react-router JS 控制路由跳转实例
Jun 15 Javascript
打字效果动画的4种实现方法(超简单)
Oct 18 Javascript
微信小程序switch组件使用详解
Jan 31 Javascript
Vue用v-for给src属性赋值的方法
Mar 03 Javascript
node.js中express模块创建服务器和http模块客户端发请求
Mar 06 Javascript
微信小程序实现图片压缩
Dec 03 Javascript
vue单文件组件无法获取$refs的问题
Jun 24 Javascript
小程序自定义弹框效果
Nov 16 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实现的MySQL通用查询程序
2007/03/11 PHP
php发送post请求的三种方法
2014/02/11 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python中logging模块的用法实例
2014/09/29 Python
解析Python中while true的使用
2015/10/13 Python
Python制作简单的网页爬虫
2015/11/22 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
python学生信息管理系统实现代码
2019/12/17 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
你所在的项目是如何确定版本号的
2015/12/28 面试题
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
保险公司年会主持词
2014/03/22 职场文书
房产转让协议书
2014/04/11 职场文书
2014年终个人工作总结
2014/11/07 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技