2017-02-21 2 views
2

에 대기와 각도-UI를 선행 입력이취소하는 방법 선행 입력을-대기-MS를 키를 눌러

를 지정하여
<input type="text" 
    ng-model="selected" 
    uib-typeahead="state for state in states | filter:$viewValue | limitTo:8" 
    typeahead-focus-first="false" 
    typeahead-wait-ms="1000" 
    class="form-control"> 
나는 기다림을 취소하고 대기 시간 전에 Enter 키를 누를 때 typeaheads을 표시하지 싶습니다

에 도달했습니다. 여기

는 plunker가 재생하는 것입니다 : 내가 입력하면 https://plnkr.co/edit/QkYumhmcDsXexHSLALsf?p=preview

은 그래서 예를 들어, "A"다음 1000MS가 ellapsed 전에 Enter 키를 누릅니다의 typeaheads 메뉴 를 표시 할 수 없습니다.

답변

1

oFace 흐림 아이디어 덕분에이 지침을 생각해 냈습니다.

.directive('typeaheadCancelEnter', function() { 
     return { 
      restrict: 'A', 
      link: function ($scope, elem, attrs) { 

       elem.bind('keyup', function ($event) { 
        var element = $event.target; 
        var code = $event.keyCode || $event.which; 
        if (code == 13) { //Enter keycode 
         element.blur();  
        } 

       }); 

      } 
     }; 
    }) 

https://plnkr.co/edit/vodZHT14zZjdcTEKVKq9?p=preview

1

빠른 수정 - 아니 난 두려워 각 방법,하지만 지옥 :

  1. 사용자의 입력 필드에게 ID를 부여 - 예 : HTML에서

    추가

  2. search_input를 NG를 입력 = "blurme()"당신의 TypeaheadCtrl에

: 함수를 추가

$scope.blurme = function() { 
    // blur input field to cancel autosuggest after typeahead-wait-ms 
    var search_input = document.getElementById ('search-input'); 
    search_input.blur(); 
}