Typeahead в AngularJs не работает должным образом?

Я использую typeahead , независимо от того, что я печатаю, появляются все предложения. Я хочу, чтобы они фильтровали. (т. е. если пользователь вводит а, все слова с инициалами, кроме а, должны быть отфильтрованы из предложения, но этого не происходит)

<input type="text" ng-model="send" typeahead="desc as desc.Name for desc in programs">

Я использую эту ссылку для директив: http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.6.0.js


person Moose    schedule 27.05.2014    source источник


Ответы (2)


Точные значения, которые должны быть возвращены в предложениях typeahead, возвращаются из части in выражения - в вашем случае вы говорите, что typeahead должен возвращать полный массив programs независимо от того, что было введено в поле ввода. Если вы хотите ограничить результаты на основе того, что было введено пользователем, вам необходимо отфильтровать эти результаты, и вы можете использовать для этого выражение $viewValue.

В вашем случае вы можете написать:

typeahead="desc as desc.Name for desc in programs | filter:$viewValue

предполагая, что programs — это обычный массив JavaScript.

Вам также следует ознакомиться с примерами на демонстрационной странице проекта (http://angular-ui.github.io/bootstrap/), чтобы лучше понять, что возможно.

person pkozlowski.opensource    schedule 27.05.2014
comment
Спасибо. Это именно то, что мне было нужно. Кроме того, он имеет какое-либо отношение к включенному сценарию (angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.6.0.js) или нет? - person Moose; 27.05.2014

Для этого вам нужно создать фильтр, ознакомьтесь с этим рабочим примером.

http://plnkr.co/edit/LT6pAnS8asnpFEd5e6Ri?p=preview

person Vaibhav kumar    schedule 27.05.2014
comment
@RiteshThakur Здесь у меня проблема с поиском, например, если я наберу a, он будет искать список с таким текстом, как amit, anshu, annu, после очистки первого поиска я набираю n, затем вместо отображения нового ответа он предлагает старое имя, которое имеет n char, например anshu, annu, и если я очистю поиск и снова наберу n, он покажет правильный ответ, так что вы можете помочь, почему он показывает предыдущий список при втором поиске и как я могу его решить - person Deepak Patidar; 25.01.2017