English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

AngularJS에서 트리 구조(ztree) 메뉴 예제 코드 구현

树形结构

树形结构有多种形式和实现方式,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', [])
// Left라는 이름의 controller를 생성합니다-navigation
myApp.controller('Left-navigation', ['$scope', function ($scope) {
  // navFunc 함수를 정의하고, 하나의 매개변수를 받습니다
 $scope.navFunc = function (arg) {
 // navAction 변수를 함수에 전달된 값 arg와 같게 합니다
    $scope.navAction = arg;
  });
});

요약

전체적인 방향은 첫 번째 탐색을 클릭할 때 함수를 실행하고 첫 번째 탐색의 이름을 함수에 전달하는 것이며, 두 번째 탐색은 navAction 변수가 그 상위 탐색과 일치할 때 표시되고, 다를 때는 숨겨집니다. 이 글의 모든 내용이며, 많은 사람들에게 도움이 되기를 바랍니다. 의문이 있으면 댓글을 남겨 주세요.

좋아하는 것