AngularJS實(shí)現(xiàn)樹形結(jié)構(gòu)(ztree)菜單示例代碼
樹形結(jié)構(gòu)
樹形結(jié)構(gòu)有多種形式和實(shí)現(xiàn)方式,zTree可以說得上是一種比較簡潔又美觀的且實(shí)現(xiàn)起來也相對(duì)簡單。zTree是一個(gè)依靠jQuery實(shí)現(xiàn)的多功能“樹插件”。它最大的優(yōu)點(diǎn)是配置靈活,只要id與pid的值相同就可形成一個(gè)簡單的父子結(jié)構(gòu)。再加上免費(fèi)開源,使用zTree的人越來越多。
效果圖如下
首先你需要知道AngularJS的雙向數(shù)據(jù)綁定是什么才可以更好的理解下面的代碼,想了很久才想出用下面的代碼來實(shí)現(xiàn)左側(cè)菜單樹形結(jié)構(gòu)
要實(shí)現(xiàn)上面的功能你需要操作如下步驟:
在HTML標(biāo)簽內(nèi)添加ng-app,讓AngularJS掌管整個(gè)HTML文檔
<html lang="en" ng-app="myApp">
myApp是我自己創(chuàng)建的模塊
整個(gè)菜單的標(biāo)簽如下
<div id="left-menu" ng-controller="Left-navigation" class="col-sm-2" style="margin-top: 50px"> <ul> <!-- 儀表盤 --> <li> <!-- 讓每一個(gè)一級(jí)菜單綁定一個(gè)函數(shù)navFunc,并且傳入一個(gè)指定的字符串 --> <a href="" ng-click="navFunc('dashboard')">儀表盤</a> </li> <!-- 主機(jī) --> <li> <span><a ng-click="navFunc('hosts')" href="">主機(jī)</a></span> <!-- 如果要顯示二級(jí)菜單,則navAction必須等于制定的字符串,這個(gè)是自己定義的,navAction是在controller中創(chuàng)建的 --> <ul ng-show="navAction === 'hosts'"> <li><a href="">主機(jī)</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="">監(jiān)控</a></li> <li><a href="">裝機(jī)</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代碼如下
// 創(chuàng)建myApp模塊 var myApp = angular.module('myApp', []) // 創(chuàng)建一個(gè)controller,名為Left-navigation myApp.controller('Left-navigation', ['$scope', function ($scope) { // 定義一個(gè)函數(shù)navFunc, 接受一個(gè)參數(shù) $scope.navFunc = function (arg) { // 讓navAction變量等于函數(shù)傳入過來的值arg $scope.navAction = arg; }; }]);
總結(jié)
整體的思路其實(shí)就是點(diǎn)擊一級(jí)導(dǎo)航的時(shí)執(zhí)行一個(gè)函數(shù),并把一級(jí)導(dǎo)航的名稱發(fā)送給函數(shù),然后二級(jí)導(dǎo)航在navAction變量等于它的上級(jí)導(dǎo)航的時(shí)候就顯示,否則就隱藏。以上就是這篇文章的全部內(nèi)容,希望能對(duì)大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。
- 實(shí)例詳解AngularJS實(shí)現(xiàn)無限級(jí)聯(lián)動(dòng)菜單
- AngularJS折疊菜單實(shí)現(xiàn)方法示例
- AngularJS實(shí)現(xiàn)的select二級(jí)聯(lián)動(dòng)下拉菜單功能示例
- Angular.js與Bootstrap相結(jié)合實(shí)現(xiàn)手風(fēng)琴菜單代碼
- AngularJS動(dòng)態(tài)菜單操作指令
- AngularJS+Bootstrap3多級(jí)導(dǎo)航菜單的實(shí)現(xiàn)代碼
- AngularJS模糊查詢功能實(shí)現(xiàn)代碼(過濾內(nèi)容下拉菜單排序過濾敏感字符驗(yàn)證判斷后添加表格信息)
- Angular.JS實(shí)現(xiàn)無限級(jí)的聯(lián)動(dòng)菜單(使用demo)
- angularjs+bootstrap菜單的使用示例代碼
- Angluar+zorro實(shí)現(xiàn)無限級(jí)菜單
相關(guān)文章
AngularJS 實(shí)現(xiàn)彈性盒子布局的方法
本文給大家?guī)硪欢魏喍檀a實(shí)現(xiàn)angularjs彈性布局效果,非常實(shí)用,對(duì)angularjs彈出布局知識(shí)感興趣的朋友可以參考下2016-08-08angularjs手動(dòng)識(shí)別字符串中的換行符方法
今天小編就為大家分享一篇angularjs手動(dòng)識(shí)別字符串中的換行符方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10AngularJS中的Directive自定義一個(gè)表格
本篇文章給大家介紹在angularjs中自定義一個(gè)有關(guān)表格的directive,涉及到angularjs directive相關(guān)知識(shí),對(duì)本文感興趣的朋友一起學(xué)習(xí)吧2016-01-01AngularJS使用ng-app自動(dòng)加載bootstrap框架問題分析
這篇文章主要介紹了AngularJS使用ng-app自動(dòng)加載bootstrap框架問題,分析了前面文章中所述的ng-app自動(dòng)加載bootstrap出現(xiàn)的錯(cuò)誤原因與相應(yīng)的解決方法,需要的朋友可以參考下2017-01-01Angularjs在360兼容模式下取數(shù)據(jù)緩存問題的解決辦法
這篇文章主要為大家詳細(xì)介紹了Angularjs在360兼容模式下取數(shù)據(jù)緩存問題的解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06angular-cli修改端口號(hào)【angular2】
本篇文章主要介紹了angular2中angular-cli修改端口號(hào)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04angularjs實(shí)現(xiàn)天氣預(yù)報(bào)功能
這篇文章主要為大家詳細(xì)介紹了angularjs實(shí)現(xiàn)天氣預(yù)報(bào)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10AngularJS自定義指令之復(fù)制指令實(shí)現(xiàn)方法
這篇文章主要介紹了AngularJS自定義指令之復(fù)制指令實(shí)現(xiàn)方法,結(jié)合完整實(shí)例形式分析了AngularJS自定義指令實(shí)現(xiàn)復(fù)制功能的相關(guān)操作技巧,需要的朋友可以參考下2017-05-05