2014-01-04 4 views
1

Я искал в Интернете, как реализовать jquery ui autocomplete в angularJS. Я нашел очень хороший образец, и он работает. Здесь SourcecodeУгловой входной триггер события

HTML

<div ng-app='MyModule'> 
    <div ng-controller='DefaultCtrl'> 
     <input auto-complete ui-items="names" ng-model="selected"> 
     selected = {{selected}} 
    </div> 
</div> 

JS

function DefaultCtrl($scope) { 
    $scope.names = ["john", "bill", "charlie", "robert", "alban", "oscar", "marie", "celine", "brad", "drew", "rebecca", "michel", "francis", "jean", "paul", "pierre", "nicolas", "alfred", "gerard", "louis", "albert", "edouard", "benoit", "guillaume", "nicolas", "joseph"]; 
} 

angular.module('MyModule', []).directive('autoComplete', function($timeout) { 
    return function(scope, iElement, iAttrs) { 
      iElement.autocomplete({ 
       source: scope[iAttrs.uiItems], 
       select: function() { 
        $timeout(function() { 
         iElement.trigger('input'); 
        }, 0); 
       } 
      }); 
    }; 
}); 

То, что я действительно запутаться в том, о входе триггера события на событие выбора.

select: function() { 
        $timeout(function() { 
         iElement.trigger('input'); 
        }, 0); 
       } 

Что такое вход для события, я никогда не слышал об этом. Я искал в Интернете о событии ввода, но не смог найти что-то полезное.

+0

https://developer.mozilla.org/en-US/docs/Web/Reference/Events/input try MDN docs, примечание не доступно во всех браузерах – charlietfl

ответ

1

Хороший способ подумать об этом: это событие keyup, которое отфильтровывает все ключи, которые не влияют на текстовое значение ввода, и срабатывает, когда завершение выбрано из списка ранее введенного значения (спасибо @szeryf для подсказки!). См. Это answer от stackoverflow для получения более подробной информации.

Смежные вопросы