Angular事件是Angular应用程序中的一个重要组成部分,它可以帮助开发人员更好地控制应用程序的行为。Angular事件是一种特殊的JavaScript对象,它可以被用来传递信息和数据,并且可以被用来处理用户界面上的各种交互。
Angular事件有很多不同的形式,包括鼠标单击、键盘输入、文本选择和元素加载。这些事件可以在Angular应用程序中使用,并且可以使用Angular内置的API来处理这些事件。例如,当鼠标单击时,可以使用Angular内置的API来处理该单击事件。
$scope.onClick = function(event) { // Do something with the event };
此外,还可以使用Angular内置的API来监听和处理特定的DOM元素上的特定事件。例如:
$scope.onElementClick = function(element, event) { // Do something with the element and event };
此外,还可以使用Angular内置的API来监听和处理特定DOM元素上所有注册过的事件。例如:
$scope.onAllEvents = function(element, event) { // Do something with the element and event };
此外,还可以使用Angular内置的API来注册新的自定义事件。例如:
$scope.$on('myCustomEvent', function(event) { // Do something with the event });
总之,Angular中有很多不同形式和方式来监听和处理不同形式和方式的事件。通过使用Angular内置的API来注册、监听和处理不同形式和方式的事件(包括DOM元素上所有注冊过得事情、新注冊得自定义时间、键盘输入、文本选框、鼠标单击、元素加载 等 ) ; 应试者能够利申 Angular 杜带助我去优化我去应试者去代衁书代衁书代衁书代衁书代衁书代衁书代衁书代衁书代衁书代衁书代衁书代衁书代衁书应试者去创竣竣竣竣竣竣竣竣竣竣竣竣竣竣竣一个优雅耐真耐真耐真耐真耐真耐真耐真耐真耐真耐真耐真耐真耐真耐真耐真体骤体骤体骤体骤体骤体骤体骤体骤体骤体骤体骤体骤体骤体 高效地 Angular 应试者去应试者去应试者去应试者去应试者去应试者去应试者去应试者去.
通过事件绑定,你可以侦听并响应用户操作,例如按键、鼠标移动、点击和触摸。
包含本指南中的代码段的工作示例,参见现场演练 / 下载范例。
要绑定到事件,请使用 Angular 的事件绑定语法。此语法由等号左侧括号内的目标事件名和右侧引号内的模板语句组成。在下面的示例中,目标事件名是 click
,模板语句是 onSave()
。
<button (click)="onSave()">Save</button>
事件绑定侦听按钮的单击事件,并在发生单击时调用组件的 onSave()
。
Angular 还支持被动事件侦听器。例如,使用以下步骤使滚动事件变为被动的。
src
目录下创建一个文件 zone-flags.ts
。(window as any)["__zone_symbol__PASSIVE_EVENTS"] = ["scroll"];
src/polyfills.ts
文件中,在导入 zone.js 之前,先导入新创建的 zone-flags
。import "./zone-flags";
import "zone.js"; // Included with Angular CLI.
在这些步骤之后,如果你为 scroll
事件添加事件侦听器,侦听器就会是 passive
的。
指令通常使用 Angular 的 EventEmitter
引发自定义事件,如下所示。
EventEmitter
并将其对外暴露为属性。
EventEmitter.emit(data)
发出事件,传入消息数据,该消息数据可以是任何东西。
$event
对象接收数据。
考虑一个 ItemDetailComponent
,它会显示条目信息并响应用户操作。尽管 ItemDetailComponent
显示了一个删除按钮,但它并不包含删除英雄的功能。它只会引发一个报告用户要求删除的事件。
<img src="{{itemImageUrl}}" [style.display]="displayNone">
<span [style.text-decoration]="lineThrough">{{ item.name }}
</span>
<button (click)="delete()">Delete</button>
该组件定义了一个 deleteRequest
返回 EventEmitter
的属性。当用户单击 Delete 时,该组件将调用 delete()
方法,让这个 EventEmitter
发出 Item
对象。
// This component makes a request but it can"t actually delete a hero.
@Output() deleteRequest = new EventEmitter<Item>();
delete() {
this.deleteRequest.emit(this.item);
this.displayNone = this.displayNone ? "" : "none";
this.lineThrough = this.lineThrough ? "" : "line-through";
}
宿主父组件将绑定到 ItemDetailComponent
的 deleteRequest
事件,如下所示。
<app-item-detail (deleteRequest)="deleteItem($event)" [item]="currentItem"></app-item-detail>
当 deleteRequest
事件触发时,Angular 就会以该条目为参数调用其父组件的 deleteItem()
。
为了确定事件的目标,Angular 会检查目标事件的名称是否与已知指令的事件属性匹配。在以下示例中,Angular 会检查 myClick
是否来自自定义指令 ClickDirective
的事件。
<h4>myClick is an event on the custom ClickDirective:</h4>
<button (myClick)="clickMessage=$event" clickable>click with myClick</button>
{{clickMessage}}
如果目标事件名称 myClick
未能匹配元素上的事件或 ClickDirective
的输出属性,则 Angular 将报告“未知指令”错误。
依赖提供者通过配置提供者,你可以把服务提供给那些需要它们的应用部件。依赖提供者会使用DI令牌来配置注入器,注入器会用它来提...
里程碑3:英雄特征区本里程碑涵盖了以下内容:用模块把应用和路由组织为一些特性区。命令式的从一个组件导航到另一个通过路由传递...
构建动态表单许多表单(比如问卷)可能在格式和意图上都非常相似。为了更快更轻松地生成这种表单的不同版本,你可以根据描述业务...
部署多个语言环境如果myapp是包含项目可分发文件的目录,你通常会在语言环境目录中为不同的语言环境提供不同的版本,比如法...
前提条件对下列概念有基本的理解:Angular动画简介转场与触发器到目前为止,我们已经学过了单个HTML元素的简单动画。Angular还允...
生产环境下的ServiceWorker本页讲的是如何使用AngularServiceWorker发布和支持生产环境下的应用。它解释了AngularServiceWorker...
安全本主题会讲述Angular为防范Web应用常见的安全漏洞和攻击(比如跨站脚本攻击)内置的保护措施,但不会涉及应用级安全,比如用...