src/hotkeys.js
function _del (hotkey) {
        var combo = (hotkey instanceof Hotkey) ? hotkey.combo : hotkey;

        Mousetrap.unbind(combo);

        if (angular.isArray(combo)) {
          var retStatus = true;
          var i = combo.length;
          while (i--) {
            retStatus = _del(combo[i]) && retStatus;
          }
          return retStatus;
        } else {
          var index = scope.hotkeys.indexOf(_get(combo));

          if (index > -1) {
            // if the combo has other combos bound, don't unbind the whole thing, just the one combo:
            if (scope.hotkeys[index].combo.length > 1) {
              scope.hotkeys[index].combo.splice(scope.hotkeys[index].combo.indexOf(combo), 1);
            } else {

              // remove hotkey from bound scopes
              angular.forEach(boundScopes, function (boundScope) {
                var scopeIndex = boundScope.indexOf(scope.hotkeys[index]);
                if (scopeIndex !== -1) {
                    boundScope.splice(scopeIndex, 1);
                }
              });

              scope.hotkeys.splice(index, 1);
            }
            return true;
          }
        }

        return false;

      }
function _del (hotkey) {
        var combo = (hotkey instanceof Hotkey) ? hotkey.combo : hotkey;

        Mousetrap.unbind(combo);

        if (angular.isArray(combo)) {
          var retStatus = true;
          var i = combo.length;
          while (i--) {
            retStatus = _del(combo[i]) && retStatus;
          }
          return retStatus;
        } else {
          var index = scope.hotkeys.indexOf(_get(combo));

          if (index > -1) {
            // if the combo has other combos bound, don't unbind the whole thing, just the one combo:
            if (scope.hotkeys[index].combo.length > 1) {
              scope.hotkeys[index].combo.splice(scope.hotkeys[index].combo.indexOf(combo), 1);
            } else {

              // remove hotkey from bound scopes
              angular.forEach(boundScopes, function (boundScope) {
                var scopeIndex = boundScope.indexOf(scope.hotkeys[index]);
                if (scopeIndex !== -1) {
                    boundScope.splice(scopeIndex, 1);
                }
              });

              scope.hotkeys.splice(index, 1);
            }
            return true;
          }
        }

        return false;

      }
function _del ( hotkey ) { var combo = ( hotkey instanceof Hotkey ) ? hotkey . combo : hotkey ; Mousetrap . unbind ( combo ) ; if ( angular . isArray ( combo ) ) { var retStatus = true ; var i = combo . length ; while ( i -- ) { retStatus = _del ( combo [ i ] ) && retStatus ; } return retStatus ; } else { var index = scope . hotkeys . indexOf ( _get ( combo ) ) ; if ( index > - 1 ) { // if the combo has other combos bound, don't unbind the whole thing, just the one combo: if ( scope . hotkeys [ index ] . combo . length > 1 ) { scope . hotkeys [ index ] . combo . splice ( scope . hotkeys [ index ] . combo . indexOf ( combo ) , 1 ) ; } else { // remove hotkey from bound scopes angular . forEach ( boundScopes , function ( boundScope ) { var scopeIndex = boundScope . indexOf ( scope . hotkeys [ index ] ) ; if ( scopeIndex !== - 1 ) { boundScope . splice ( scopeIndex , 1 ) ; } } ) ; scope . hotkeys . splice ( index , 1 ) ; } return true ; } } return false ; }
delete and unbind a Hotkey

@param  {mixed} hotkey   Either the bound key or an instance of Hotkey
@return {boolean}        true if successful
delete and unbind a Hotkey