diff --git a/src/common.js b/src/common.js index 93e206324..359777472 100644 --- a/src/common.js +++ b/src/common.js @@ -104,7 +104,8 @@ var uis = angular.module('ui.select', []) generateId: function() { return latestId++; }, - appendToBody: false + appendToBody: false, + disableBackspaceReset: false }) // See Rename minErr and make it accessible from outside https://github.com/angular/angular.js/issues/6913 diff --git a/src/uiSelectDirective.js b/src/uiSelectDirective.js index 3032d8168..b2c165168 100644 --- a/src/uiSelectDirective.js +++ b/src/uiSelectDirective.js @@ -82,6 +82,11 @@ uis.directive('uiSelect', $select.searchEnabled = searchEnabled !== undefined ? searchEnabled : uiSelectConfig.searchEnabled; }); + scope.$watch('disableBackspaceReset', function() { + var disableBackspaceReset = scope.$eval(attrs.disableBackspaceReset); + $select.disableBackspaceReset = disableBackspaceReset !== undefined ? disableBackspaceReset : uiSelectConfig.disableBackspaceReset; + }); + scope.$watch('sortable', function() { var sortable = scope.$eval(attrs.sortable); $select.sortable = sortable !== undefined ? sortable : uiSelectConfig.sortable; diff --git a/src/uiSelectSingleDirective.js b/src/uiSelectSingleDirective.js index bad98a7ed..986120816 100644 --- a/src/uiSelectSingleDirective.js +++ b/src/uiSelectSingleDirective.js @@ -84,8 +84,7 @@ uis.directive('uiSelectSingle', ['$timeout','$compile', function($timeout, $comp }); }); focusser.bind("keydown", function(e){ - - if (e.which === KEY.BACKSPACE) { + if (e.which === KEY.BACKSPACE && $select.disableBackspaceReset === false) { e.preventDefault(); e.stopPropagation(); $select.select(undefined);