AngularJS事件教程
时间:2020-02-23 14:29:34 来源:igfitidea点击:
作为Web开发人员,我们将不得不处理不同的DOM事件,例如按键,鼠标移动,鼠标单击和其他更改事件。
在本教程中,我们将通过适当的示例介绍用于处理这些事件的AngularJS指令。
内容:
- AngularJS事件侦听器指令简介
- AngularJS事件示例
AngularJS事件侦听器指令简介
以下列表显示了DOM事件的可用AngularJS事件侦听器指令。
- ng-click
- ng-dblclick
- ng-keydown
- ng-keypress
- ng-keyup
- ng-mousedown
- ng-mouseenter
- ng-mouseleave
- ng-change
用法
我们可以将上面的AngularJS事件侦听器指令用作HTML元素的属性,如下所示。
<ANY eventListenerDirective="expression"> .... .... </ANY>
其中表达式是在触发每个事件时求值的。
AngularJS事件示例
以下示例演示了angularJS事件。
诸如ngClick和ngFocus等指令在该表达式的范围内公开了$event对象。
当存在jQuery时,该对象是jQuery事件对象的实例,或者是类似的jqLite
对象。
事件对象也可用于键事件,并可用于获取keyCode,altKey等值。
index.html
<!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="mystyle.css"> <script src= "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <script src="app.js"></script> </head> <body> <div ng-app="myApp" ng-controller="myCtrl"> ngClick Directive <button class="btn1" ng-click="onClick($event)">Click Me! </button>{{ clicked }} ngDblclick Directive <button class="btn3" ng-dblclick="count = count + 1">Double Click!</button> {{ count }} ngMousedown and ngMouseup Directive <button class="btn1" ng-class="{green: down}" ng-mousedown="down = true" ng-mouseup="down = false"> Change Color</button> ngMouseenter and ngMouseleave Directives <button class="btn2" ng-class="{red: hover}" ng-mouseenter="hover = true" ng-mouseleave="hover = false">Toggle Colors</button> ngMousemove Directive <button class="btn2" ng-mousemove="moveCnt = moveCnt + 1" ng-init='moveCnt=0'>Move Mouse</button> Moved {{moveCnt}} times. ngkeyup Directive Type something : <input class="txt" ng-keyup="keyupcount = keyupcount + 1" ng-init="keyupcount=0"> key up count: {{keyupcount}} ngkeydown Directive Type something : <input class="txt" ng-keydown="event=$event">event keyCode: {{ event.keyCode }} ngChange Directive Checked : <input type="checkbox" ng-model="checked" {{checked}} </div> </body> </html>
在以下文件中创建控制器。
您可以看到$event对象的使用。
app.js
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.onClick = function(event){ $scope.clicked = "Clicked On X: "+event.clientX +" and Y: "+event.clientY; }; });
在示例中使用以下CSS样式。
mystyle.css
.btn1 { color: #FFF; background-color: #900; font-weight: bold; font-size : 20px; } .btn2 { color: #FFF; background-color: green; font-weight: bold; font-size : 20px; } .btn3 { color: #FFF; background-color: blue; font-weight: bold; font-size : 20px; } .txt { border: 1px solid red; } .red { background-color: red; } .green { background-color: green; }