Angular-UI: результаты Force Typeahead

У меня есть текстовое поле, которое использует функция typeahead AngularUI. Выглядит это так:

<input typeahead="eye for eye in autocomplete[column] | filter:$viewValue">

Я хотел бы заставить пользователя выбрать опцию из списка, который генерируется. Если они вводят что-то, что не находится в списке точно так, как кажется, при размытии (щелчок вне текстового поля), я хотел бы, чтобы значение текстового поля было сброшено до его исходного значения.

является ли эта функциональность частью директивы typeahead, или мне нужно будет расширить это? Я искал около 10 минут в google и stackoverflow, но не смог найти никакой соответствующей документации.

может ли кто-нибудь указать мне в правильном направлении, чтобы выполнить это?

1 ответов


в плагине есть атрибут, чтобы заставить существующие значения только:typeahead-editable="false". Значение по умолчанию:true.

только $modelValue устанавливается пустым, когда выбрано неправильное значение, и это действительно необходимо, иначе мы не смогли бы ничего написать. The $viewValue остается с последним введенным текстом. Возможно, вы сможете привязать собственное событие размытия к полю, чтобы сбросить $viewValue?

вот ваш JsFiddle с выбранным значением отображается: http://jsfiddle.net/ZjPWe/61/

вы также можете использовать атрибут typeahead-on-select который требовал обратного вызова при выборе значения, но я не уверен, что он будет работать с typeahead-editable="false" потому что значение не выбирается.