AngularJS ng-click、ng-show 和 ng-hide 指令
⚡ 智能摘要
AngularJS 事件允许 Web 应用程序响应用户输入,例如鼠标点击、按键和悬停操作。包括 ng-click、ng-show 和 ng-hide 在内的指令以声明式的方式在标记中绑定这些行为,而无需手动编写 DOM 监听器。

AngularJS 事件
AngularJS 事件 事件是使 Web 应用程序能够与用户输入(例如鼠标点击、键盘输入和鼠标悬停)进行交互的功能。Web 应用程序必须处理事件才能执行特定的任务和操作,每个事件都会在用户执行相应操作时触发。
在创建 Web 应用程序时,您的应用程序迟早需要处理 DOM 事件,例如鼠标点击和移动、键盘按下和更改事件。 AngularJS 提供以声明方式处理这些事件的指令。
例如,如果页面上的按钮在点击时需要处理某些操作,ng-click 事件指令提供了该钩子。
⚠️ 支持通知: AngularJS 已达到 生命终结日期为2021年12月31日 并且不再收到 Angular 团队的任何补丁或安全修复。以下指令仍然适用于维护现有的 AngularJS 1.x 应用程序;对于新项目,请使用现代版本。 角度方向其中这些指令被事件绑定所取代,例如: (click) 并通过 *ngIf.
AngularJS 中的 ng-click 指令是什么?
此 “ng-click 指令” 在 AngularJS 中,点击事件会在 HTML 元素被点击时应用自定义行为。它通常用于按钮,因为按钮是最常添加点击响应的地方,此外,它还用于在点击时弹出警告框。
AngularJS 中 ng-click 的语法
<element ng-click="expression"> </element>
AngularJS 中的 ng-click 示例
在这个 ng-click 示例中,每次用户点击按钮时,计数器变量都会递增。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body ng-app=""> <script src="https://code.angularjs.org/1.8.3/angular.js"></script> <h1>Guru99 Global Event</h1> <button ng-click="count = count + 1" ng-init="count=0"> Increment </button> <div>The Current Count is {{count}}</div> </body> </html>
Code 说明:
- ng-init 指令设置局部变量
count到0。 - 按钮上的 ng-click 指令递增
count每次点击增加 1。 - 插值
{{count}}向用户显示当前值。
输出:
屏幕上会显示“递增”按钮,初始计数为零。点击该按钮会增加计数,如下图所示。
AngularJS 中的 ng-show 指令是什么?
此 ng-show 指令 显示或隐藏给定内容 HTML 根据传递给 ng-show 属性的表达式来显示或隐藏元素。在内部,通过移除或添加该表达式来显示或隐藏元素。 .ng-hide CSS 类,一个预定义的类,用于设置 display 至 none.
AngularJS 中 ng-show 的语法
<element ng-show="expression"> </element>
AngularJS 中的 ng-show 示例
本示例使用 ng-show 来显示隐藏元素。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.js"></script> <h1>Guru99 Global Event</h1> <div ng-app="DemoApp" ng-controller="DemoController"> <input type="button" value="Show Angular" ng-click="ShowHide()"/> <br><br><div ng-show="IsVisible">Angular</div> </div> <script type="text/javascript"> var app = angular.module('DemoApp', []); app.controller('DemoController', function($scope) { $scope.IsVisible = false; $scope.ShowHide = function() { $scope.IsVisible = true; }; }); </script> </body> </html>
Code 说明:
- 按钮上的 ng-click 指令引用了一个
ShowHide控制器中定义的函数DemoController. - ng-show 属性附加到包含文本“Angular”的 div 元素上。该元素的可见性受到控制。
- 在控制器中,
IsVisible成员变量被放置在作用域对象上并初始化为false因此,当页面首次加载时,该 div 元素会被隐藏。使用 ng-show 时,其值为 true 显示元素并 false 把它藏起来了。 - 此
ShowHide函数集IsVisible设置为 true,使 div 元素可见。
输出:
包含文本的div元素最初不会显示,因为 IsVisible 初始状态为假。点击 显示 Angular 将其设置为 true,文本就会显示出来。
AngularJS 中的 ng-hide 指令是什么?
此 ng-hide 指令 当表达式的计算结果为 TRUE 时隐藏元素,当表达式的计算结果为 FALSE 时显示元素——这与 ng-show 的作用正好相反。其内部使用相同的机制。 .ng-hide CSS类。
AngularJS 中 ng-hide 的语法
<element ng-hide="expression"> </element>
AngularJS 中的 ng-hide 示例
此示例与 ng-show 示例类似,因此可以直接比较这两个指令。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.js"></script> <h1>Guru99 Global Event</h1> <div ng-app="DemoApp" ng-controller="DemoController"> <input type="button" value="Hide Angular" ng-click="ShowHide()"/> <br><br><div ng-hide="IsVisible">Angular</div> </div> <script type="text/javascript"> var app = angular.module('DemoApp', []); app.controller('DemoController', function($scope) { $scope.IsVisible = false; $scope.ShowHide = function() { $scope.IsVisible = true; }; }); </script> </body> </html>
Code 说明:
- 按钮上的 ng-click 指令引用了
ShowHide功能DemoController. - 此 ng-hide 属性附加到包含文本“Angular”的div元素上。
IsVisible初始化为false因为这是 ng-hide 而不是 ng-show,所以 false 值表示该 div 元素处于隐藏状态。 可见 页面首次加载时。- 此
ShowHide函数集IsVisible设置为 true,即可隐藏 div 元素。
输出:
该div元素最初显示,因为ng-hide参数设置为false。点击 隐藏 Angular 验证通过,该词消失。
ng-show vs ng-hide vs ng-if:主要区别
三个指令控制着用户是否能看到某个元素,选择哪个指令会影响页面行为和渲染性能。前两个指令只切换一个 CSS 类,因此该元素始终显示在页面上;第三个指令则会添加或移除该元素本身。
| 方面 | 吴秀 | ng-hide | ng-if |
|---|---|---|---|
| 元素可见 | 表达式为真 | 表达式为假 | 表达式为真 |
| DOM 中的元素 | 总是 | 总是 | 仅当如此时 |
| 使用的方法 | Toggles .ng-hide 类 | Toggles .ng-hide 类 | 创建和销毁元素 |
| 儿童范围 | 共享父级范围 | 共享父级范围 | 创建一个新的子作用域 |
| 隐藏时的观察者 | 仍然活跃 | 仍然活跃 | 去除 |
| 最适合 | 频繁切换灯光内容 | 反转条件 | 重口味内容很少出现 |
当元素频繁切换时,请使用 ng-show 或 ng-hide,因为元素不会被重建,切换操作仅需更改一个类名。对于很少显示且开销较大的部分,请使用 ng-if,因为移除元素也会移除其监听器,从而降低每次循环的摘要开销。
AngularJS 事件监听器指令
您可以使用以下一种或多种方法为 HTML 元素添加 AngularJS 事件监听器。 指令:
- 模糊
- ng-改变
- ng-点击
- ng-复制
- ng-cut
- ng-双击
- ng-焦点
- ng-keydown
- ng-按键
- ng-键盘输入
- ng-鼠标按下
- ng-鼠标进入
- ng-鼠标离开
- ng-鼠标移动
- ng-鼠标悬停
- ng-mouseup
- 粘贴
- 提交
每个指令都接受一个表达式,并且原始浏览器事件可以在其中使用。 $event 当处理程序需要详细信息时,例如按下的键或点击的坐标。









