2017-07-11 66 views
3

如何在大寫鎖定打開時使用(或不是)工具提示樣式來檢測和警告用戶(4.2.2版)?也許有一些keyup事件,或者像JS中的toUpperCase()檢測並警告用戶有關大寫字母鎖定的信息

+0

的[?你怎麼知道,如果大寫鎖定是使用JavaScript(可能的複製https://stackoverflow.com/questions/348792/how-do -you-tell-if-caps-lock-is-on-using-javascript) –

+0

@Den Isahac我認爲那不同於JS和TS –

回答

2

寫指令在其中添加一個聽者:

@Output('capsLock') capsLock: EventEmitter<Object>; 

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

將它添加到您的組件的主包裝DIV,和你的組件會聽「發射」,一旦收到真實,流行這樣one的消息。更改其樣式(可能不是灰色背景)和大小(較小的工具提示大小),使其隱藏並顯示* ngIf,條件是來自您的偵聽器的響應(通過@Output到組件)。

工具提示,看看這個鏈接:http://valor-software.com/ngx-bootstrap/index-bs4.html#/popover

+0

以及如何在模板中顯示消息Caps ON? –

+0

看起來像模態窗口.. –

+0

當大寫鎖定打開時,我會顯示消息,也許它沒有任何樣式嗎? –

0

我不認爲Angular可以開箱即用(AngularJS可以)。

有跡象表明,雖然可以做到這一點一些庫,這將是值得一試的CapsLock(NPMGitHub

您能夠使用可觀察到檢查大寫鎖定已啓用,然後你自定義的東西

capsLock.observe(function (result) { 
    // Do stuff 
}); 

下面是從Github上自述的例子:https://rawgit.com/aaditmshah/capsLock/master/demo.html

+0

可能檢測到keychar?沒有? –