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;
}

