Angular|Angular 事件绑定语法在 SAP Spartacus Popover Component 中的一个应用
要绑定到事件,请使用 Angular 的事件绑定语法。此语法由等号左侧括号内的目标事件名和右侧引号内的模板语句组成。在下面的示例中,目标事件名是 click ,模板语句是 onSave() 。
事件绑定侦听按钮的单击事件,并在发生单击时调用组件的 onSave()。
文章图片
【Angular|Angular 事件绑定语法在 SAP Spartacus Popover Component 中的一个应用】Spartacus 的一个例子:
文章图片
$event 是事件对象。
$event 对象通常包含该方法所需的信息,例如用户名或图片 URL。
目标事件决定了 $event 对象的形态。如果目标事件是来自原生 DOM 元素的,那么 $event 是一个DOM 事件对象,它具有 target 和 target.value 等属性。
看这个例子:
- input 控件的 value,绑定到 Component 的 currentItem.name 属性。
这个绑定会在一个上下文中执行该语句,此上下文中包含 DOM 事件对象 $event。
Angular 会通过调用 getValue($event.target) 来获取更改后的文本,并用它更新 name 属性。
在模板中,$event.target 的类型只是 EventTarget。在 getValue() 方法中,把此目标转为 HTMLInputElement 类型,以允许对其 value 属性进行类型安全的访问。
Spartacus 的这个例子,展示了如何通过 TypeScript 代码,判断 button 上触发的用户交互事件,到底是按钮被鼠标点击造成的,还是被键盘敲击造成的。
close(event: MouseEvent | KeyboardEvent) {
event.preventDefault();
if (event instanceof MouseEvent) {
this.eventSubject.next(PopoverEvent.CLOSE_BUTTON_CLICK);
} else {
this.eventSubject.next(PopoverEvent.CLOSE_BUTTON_KEYDOWN);
}
}
更多Jerry的原创文章,尽在:"汪子熙":
文章图片
推荐阅读
- 事件代理
- 事件处理程序
- angular2内置管道
- Android事件传递源码分析
- 66万奔驰漏油事件看宝宝无理取闹
- 「我的2017」——2017|「我的2017」——2017,大事件盘点
- Quartz|Quartz 源码解析(四) —— QuartzScheduler和Listener事件监听
- 心理工作要不断的评估现实事件对来访者心理造成的影响是什么
- 如何做2020年年度复盘,写出100件成就事件
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件