如何使用 typescript 中的工具提示样式(或不使用)以大写锁定打开或关闭时检测并警告用户( Angular 4.2.2)?可能有一些按键事件,或者像JS中的toUpperCase()一样。

最佳答案

编写指令并添加监听器。将其添加到组件的主包装div中,这样组件将获得发射。它收到事件更改后,立即触发链接到标签标签的属性的状态。这将有助于隐藏和显示* ngIf,条件是来自监听器的响应(通过对组件的@Output输出)。

以下内容动态显示一条消息:

HTML:

<div (capsLock)="capsOn=$event">
  <input type="text"  >
  <label *ngIf="capsOn">Caps Locked</label>
</div>

指示:
@Directive({ selector: '[capsLock]' })
export class TrackCapsDirective {
  @Output('capsLock') capsLock = new EventEmitter<Boolean>();

  @HostListener('window:keydown', ['$event'])
  onKeyDown(event: KeyboardEvent): void {
    const capsOn = event.getModifierState && event.getModifierState('CapsLock');
      this.capsLock.emit(capsOn);
  }
  @HostListener('window:keyup', ['$event'])
  onKeyUp(event: KeyboardEvent): void {
    const capsOn = event.getModifierState && event.getModifierState('CapsLock');
      this.capsLock.emit(capsOn);
  }
}

DEMO

关于javascript - 检测并警告用户有关大写锁定的信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45035330/

10-09 17:46