Функциональность typeahead в пользовательском интерфейсе AngularJs кажется простой и мощной, однако я пытался выяснить, как добиться соответствия для ведущих персонажей. Например, если я ввожу "A" в поле ввода, я бы хотел видеть все состояния, начинающиеся с "A" , а не все состояния, содержащие "A" в имени. Я искал пару дней на этом и кажется, что Angular имеет концепцию настраиваемого фильтра, который имеет "компаратор". Документы на этом имеют простой пример, который не показывает точный синтаксис для реализации компаратора.
html выглядит так:
<div>Selected: <span>{{selected}}</span></div>
<div><input type="text" ng-model="selected" typeahead="name for name in states | filter:selected"></div>
Основной javascript выглядит следующим образом
angular.module('firstChar', ['ui.bootstrap']);
function TypeaheadCtrl($scope) {
$scope.selected = undefined;
$scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Dakota', 'North Carolina', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'];
}
У меня есть плункер здесь http://plnkr.co/edit/LT6pAnS8asnpFEd5e6Ri
Таким образом, задача в двух словах состоит в том, чтобы заставить тип AngularUI соответствовать только ведущим символам.
Любая помощь или идеи по этому поводу были бы чрезвычайно оценены.