AngularJS實現樹形結構(ztree)菜單範例程式碼_AngularJS

來源:互聯網
上載者:User

樹形結構

樹形結構有多種形式和實現方式,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-navigationmyApp.controller('Left-navigation', ['$scope', function ($scope) {  // 定義一個函數navFunc, 接受一個參數 $scope.navFunc = function (arg) { // 讓navAction變數等於函數傳入過來的值arg    $scope.navAction = arg;  };}]);

總結

整體的思路其實就是點擊一級導航的時執行一個函數,並把一級導航的名稱發送給函數,然後二級導航在navAction變數等於它的上級導航的時候就顯示,否則就隱藏。以上就是這篇文章的全部內容,希望能對大家的學習或者工作帶來一定的協助,如果有疑問大家可以留言交流。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.