首页 > 数据库技术 > 详细

[Angular] Adding keyboard events to our control value accessor component

时间:2017-04-12 10:04:46      阅读:252      评论:0      收藏:0      [点我收藏+]

One of the most important thing when building custom form component is adding accessbility support.

 

The component should be focusable. we can achieve this by adding ‘tabindex="0"‘:

      <div
        tabindex="0"
      >

 

Add some css class for foucs:

      <div
        [class.focus]="focused"
        tabindex="0"
        (focus)="onFocus($event)"
        (blur)="onBlur($event)"
      >
.stock-counter {
  & .focus {
    box-shadow: 0 1px 1px rgba(0, 0, 0, .6);
  }

...
}
  onFocus() {
    this.focused = true;
    this.onTouch();
  }

  onBlur() {
    this.focused = false;
    this.onTouch();
  }

 

Handle keydwon event with code:

      <div
        [class.focus]="focused"
        tabindex="0"
        (keydown)="onKeyDown($event)"
        (focus)="onFocus($event)"
        (blur)="onBlur($event)"
      >
  onKeyDown(event: KeyboardEvent) {

    const handler = {
      ArrowDown: () => this.decrement(),
      ArrowUp: () => this.increment()
    };

    if(handler[event.code]) {
      event.preventDefault();
      event.stopPropagation();
      handler[event.code]();
    }
  }

 

[Angular] Adding keyboard events to our control value accessor component

原文:http://www.cnblogs.com/Answer1215/p/6697213.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!