2016-01-21 78 views
1

我正在努力使用angularjs $事件來創建熱鍵。我需要簡化大寫和小寫的代碼。但是我從console.log($ event)查看他們有不同的keyCode。

p是112 P是80

HTML:

<body ng-app="pointofsale" ng-controller="PointofSaleCtrl" ng-keypress="hotKeyEvent($event)"> 

的Javascript:

$scope.hotKeyEvent = function(data){ 
    console.log(data); 

    switch(data.keyCode){ 
     case 112: // p 

      break; 
     case 80: // P 

      break; 

     default: 
      console.log('No key associated') 

    } 
} 

缺少什麼我在這裏?我不想爲同一個角色創建兩個條件,但不同的情況。

感謝任何幫助,謝謝!

回答

2

你可以通過分組case語句

像這樣簡化開關:

switch(data.keyCode){ 

     case 112: // p 
     case 80: // P 

      break;  

     default: 
      console.log('No key associated') 
    } 

它被稱爲下降至 - 從本質上講,任何匹配將繼續運行,直到break被擊中。

使維護更容易一些。

+0

謝謝!這工作。我現在就這樣做。我希望我可以像這種情況下使用它112 || 80:或者是一個大寫或小寫的單一代碼:) – Binsoi

+0

不幸的是,該語法'case 112 || 80'無效,所以使用'switch'不可能;除非你在'if'中使用它。如果這有幫助,請接受答案:) – Darren