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

 更新时间:2016年09月18日 11:08:06   投稿:daisy  
这篇文章运用示例代码给大家详细介绍了利用AngularJS如何实现树形结构(ztree)菜单,文中仅用了几行AngularJS代码就是了这个功能,对大家日常开发很有帮助,有需要的朋友们可以参考借鉴,下面来一起看看吧。

树形结构

树形结构有多种形式和实现方式,zTree可以说得上是一种比较简洁又美观的且实现起来也相对简单。zTree是一个依靠jQuery实现的多功能“树插件”。它最大的优点是配置灵活,只要id与pid的值相同就可形成一个简单的父子结构。再加上免费开源,使用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变量等于它的上级导航的时候就显示,否则就隐藏。以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • angularjs项目的页面跳转如何实现(5种方法)

    angularjs项目的页面跳转如何实现(5种方法)

    本篇文章主要介绍了详解angularjs项目的页面跳转如何实现 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • AngularJS实现根据变量改变动态加载模板的方法

    AngularJS实现根据变量改变动态加载模板的方法

    这篇文章主要介绍了AngularJS实现根据变量改变动态加载模板的方法,结合实例形式简单分析了AngularJS动态加载模板的主要操作技巧与模板实现代码,需要的朋友可以参考下
    2016-11-11
  • AngularJS创建一个上传照片的指令实例代码

    AngularJS创建一个上传照片的指令实例代码

    这篇文章主要介绍了AngularJS创建一个上传照片的指令实例代码,需要的朋友可以参考下
    2018-02-02
  • angular使用TweenMax动画库的问题和解决方法

    angular使用TweenMax动画库的问题和解决方法

    这篇文章主要给大家介绍了关于angular使用TweenMax的相关问题和解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Angular中使用Api 代理的实现

    Angular中使用Api 代理的实现

    我们对接的过程中总是遇到跨域的问题,本文使用 angualr 来讲解代理api对接的话题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • AngularJS自定义指令详解(有分页插件代码)

    AngularJS自定义指令详解(有分页插件代码)

    本篇文章主要介绍了AngularJS自定义指令详解(有分页插件代码),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 利用Angular7开发一个Radio组件的全过程

    利用Angular7开发一个Radio组件的全过程

    这篇文章主要给大家介绍了关于如何利用Angular7开发一个Radio组件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Angular7具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • AngularJS快速入门

    AngularJS快速入门

    本文通过几个循序渐进的例子,给大家详细讲解了如何快速入门AngularJS,十分的实用,这里推荐给大家,有需要的小伙伴可以参考下。
    2015-04-04
  • angularjs实现天气预报功能

    angularjs实现天气预报功能

    这篇文章主要为大家详细介绍了angularjs实现天气预报功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • AngularJS 应用模块化的使用

    AngularJS 应用模块化的使用

    这篇文章主要介绍了AngularJS 应用模块化的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论