Angular - 是否有HostListener-Events列表?

Tob*_*ann 33 angular

我在指令中使用hostlistener来检测"blur" - 和"keyup"-events.现在我需要检测指令所在的input-element的变化.我试过了

@HostListener('change', ['$event'])
Run Code Online (Sandbox Code Playgroud)

但它不会发射.

有没有"改变" - 事件?我还读过,应该有一个"输入" - 事件,但这也不会触发.

所以,我的问题是:是否有可以使用的可用事件列表?

我搜索过谷歌:

https://www.google.de/search?q=angular+2+list+of+hostlistener+events

和角度文件:

https://angular.io/api/core/HostListener

但没有找到任何东西.

yur*_*zui 29

打开角度dom元素模式https://github.com/angular/angular/blob/master/packages/compiler/src/schema/dom_element_schema_registry.ts#L78

哪里:

  • (无前缀):property是一个字符串.
  • *:property表示事件.
  • !:property是一个布尔值.
  • #:属性是一个数字.
  • %:property是一个对象.

然后按下ctrl+F并写入*

在此输入图像描述

@HostListener(还(customEvent)="handler()")也可以收听自定义事件


Kac*_*ski 9

您可以在此处找到可以收听的事件列表

https://www.w3schools.com/jsref/dom_obj_event.asp

而且我相信这是相同的,但是组织得更好(我不确定是否所有内容都有效)

https://developer.mozilla.org/zh-CN/docs/Web/Events

  • 这应该是公认的答案。它有下降,其他没有。 (2认同)

Eli*_*seo 7

对不起,我想你问一下房产清单.你可以使用例如

@HostListener("focus", ["$event.target"])
  onFocus(target) {
    console.log(target.value)
  }

  @HostListener("blur", ["$event.target"])
  onBlur(target) {
    console.log(target.value)

  }
  @HostListener("input", ["$event.target.value"])
  onInput(value) {
    console.log(value)

  }
Run Code Online (Sandbox Code Playgroud)


JGF*_*FMK 5

我想要一个显示所有这样的答案:
document:keydown.escape

在 Angular 中的此类代码片段的上下文中:

import { HostListener}    from '@angular/core';
@HostListener('document:keydown.escape', ['$event']) 
  onKeydownHandler(event: KeyboardEvent) {

  }
Run Code Online (Sandbox Code Playgroud)
  1. 该网站举了几个例子。
  2. 是更完整的列表。
  3. 以下是替代方案的更一般性概述。