<_element_ ng-keyup="_expression_">

  1. import { Component } from '@angular/core';
  2. Component({
  3. selector: 'app-key-up4',
  4. template: `
  5. <input #box (keyup.enter)="update(box.value, $event)" (blur)="update(box.value)">`
  6. })
  7. export class KeyUpComponent_v4 {
  8. value = '';
  9. update(value: string, event: any) { this.value = value; }
  10. }

常用的过滤有

  1. (keyup.enter) // 按键并回车
  2. (keyup.space) // 按键并空格
  3. (keyup.control) // 按键并ctrl
  4. (keyup.shift) // 按键并shift
  5. (keyup.alt) // 按键并alt
  6. (keyup.1) // 按键1触发
  7. (keyup.,) // 按键,触发
  8. (keyup.3) // 按键并alt

不支持一些具有正则含义的符号,
如 / ? * 等

EventManager事件

  1. import { EventManager } from '@angular/platform-browser';
  2. import { Component, OnInit } from '@angular/core';
  3. @Component({
  4. selector: 'app-demo',
  5. templateUrl: './demo.component.html',
  6. styleUrls: ['./demo.component.css']
  7. })
  8. export class DemoComponent implements OnInit {
  9. constructor(private eventManager: EventManager) { }
  10. this.eventManager.addGlobalEventListener('window', 'keydown', (event:any) => {
  11. console.log('监听到键盘按下事件了',event);
  12. if(event.keyCode == 37 || event.key == 38 || event.key == 39 || event.key == 40){
  13. //监听到 上下左右 的键盘按下事件时,调用我自己的rePosition()方法~
  14. this.rePosition(event.keyCode) ;
  15. }
  16. });
  17. }