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

