AngularJS實(shí)現(xiàn)元素顯示和隱藏的幾個(gè)案例
案例一:控制html元素顯示和隱藏有n種方法:html的hidden、css的display、jquery的hide()和show()、bootstrap的.hide。今天的重點(diǎn)不是顯示和隱藏,而是監(jiān)聽某個(gè)布爾變量值,自動(dòng)改變?cè)仫@示和隱藏狀態(tài)。監(jiān)聽函數(shù)、if判斷、選擇dom、設(shè)置dom,5行代碼搞不定吧,而且毫無技術(shù)含量。
看代碼:
<!DOCTYPE html> <html ng-app> <head> <meta charset="utf-8"> <title>ng-show and ng-hide directives</title> </head> <body> <div ng-controller="VisibleController"> <p ng-show="visible">字符串1</p> <p ng-hide="visible">字符串2</p> <button ng-click="toggle()">切換</button> </div> <script src="../lib/angularjs/1.2.26/angular.min.js"></script> <script> function VisibleController($scope) { $scope.visible = false; $scope.toggle = function () { $scope.visible = !$scope.visible; } } </script> </body> </html>
案例二:對(duì)于菜單、上下文敏感的工具以及很多其他情況來說,顯示和隱藏元素是一項(xiàng)核心的功能。與Angualr中其他功能一樣,Angular是通過修改數(shù)據(jù)模型的方式來驅(qū)動(dòng)UI刷新,然后通過指令把變更反應(yīng)到UI上。
ng-show和ng-hide這兩條指令的功能是等價(jià)的,但是運(yùn)行效果正好相反,我們都可以根據(jù)所傳遞的表達(dá)式來顯示或隱藏元素。也就是說,ng-show在表達(dá)式為true時(shí)將會(huì)顯示元素,為false時(shí)將會(huì)隱藏元素;而ng-hide則恰好相反。
這兩條指令的工作原理是:根據(jù)實(shí)際情況把元素的樣式設(shè)置為display:block來顯示元素;設(shè)置為display:none來隱藏元素。
實(shí)例:
<html ng-app='myApp'> <head> <title>ng-show實(shí)例</title> </head> <body ng-controller='ShowController'> <button ng-click="toggleMenu()">Toggle Menu</button> <ul ng-show='menuState.show'> <li>Stun</li> <li>Disintegrate</li> <li>Erase from history</li> </ul> <script src="lib/angular/angular.js"></script> <script>var myApp=angular.module('myApp',[]) myApp.controller('ShowController', function($scope) {$scope.menuState={show: false}$scope.toggleMenu=function() {$scope.menuState.show=!$scope.menuState.show;}});</script> </body> </html>
運(yùn)行結(jié)果:
點(diǎn)擊“Toggle Menu”按鈕,效果如下:
再次點(diǎn)擊“Toggle Menu”按鈕,下面的信息又隱藏了,交替變換。
案例三:
<!DOCTYPE html> <html ng-app="a2_12"> <head> <meta charset="utf-8"> <title></title> <script type="text/javascript" src="../js/angularJs-1.2.16-min.js"></script> <style type="text/css"> body{ font-size: 12px; } ul{ list-style-type: none; width: 408px; margin: 0px; padding: 0px; } div{ margin: 8px 0px; } </style> </head> <body> <div ng-controller="c2_12"> <div ng-show="{{isShow}}">腳本</div> <div ng-hide="{{isHide}}">1012@qq.con</div> <ul ng-switch on={{switch}}> <li ng-switch-when="1">11111111111111111</li> <li ng-switch-when="2">22222222222222222</li> <li ng-switch-default>33333333333333333</li> </ul> </div> <script type="text/javascript"> var a2_12 = angular.module('a2_12', []); a2_12.controller('c2_12', ['$scope', function($scope) { $scope.isShow=true; $scope.isHide=false; $scope.switch=2; }]); </script> </body> </html>
ng-switch指令的功能是顯示匹配成功的元素,該指令需要結(jié)合ng-switch-when和ng-switch-default指令使用。
當(dāng)指定的on值與某個(gè)或多個(gè)添加ng-switch-when指令的元素匹配時(shí),這些元素顯示,未匹配到的元素的隱藏。
如果沒有找到與on值相匹配的元素時(shí),則顯示添加了ng-switch-default指令的元素。
以上就是為大家分享的三個(gè)AngularJS實(shí)現(xiàn)顯示和隱藏的三個(gè)案例,希望對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
AngularJS基礎(chǔ) ng-keypress 指令簡(jiǎn)單示例
本文主要介紹AngularJS ng-keypress 指令,這里對(duì)ng-keypress指令的基礎(chǔ)資料整理,并附有實(shí)例代碼,需要的小伙伴參考下2016-08-08angularjs實(shí)現(xiàn)柱狀圖動(dòng)態(tài)加載的示例
本篇文章主要介紹了angularjs實(shí)現(xiàn)柱狀圖動(dòng)態(tài)加載的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Angular中ng-repeat與ul li的多層嵌套重復(fù)問題
這篇文章主要介紹了Angular中ng-repeat與ul li的多層嵌套重復(fù)問題,需要的朋友可以參考下2017-07-07angular內(nèi)置provider之$compileProvider詳解
下面小編就為大家?guī)硪黄猘ngular內(nèi)置provider之$compileProvider詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09使用Angular Cli如何創(chuàng)建Angular私有庫(kù)詳解
這篇文章主要給大家介紹了關(guān)于使用Angular Cli如何創(chuàng)建Angular私有庫(kù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01Angular 通過注入 $location 獲取與修改當(dāng)前頁(yè)面URL的實(shí)例
這篇文章主要介紹了Angular 通過注入 $location 獲取與修改當(dāng)前頁(yè)面URL的實(shí)例代碼,需要的朋友可以參考下2017-05-05