Как узнать, когда пользователь прекратит редактировать поле автозаполнения в angularJS

0

У меня есть вход с автозаполнением углового ui-type-head.

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

Если пользователь не использует автозаполнение, я должен изменить текст метки, указав, что this element will be added

<input
    ng-blur="checkIfNewProvider()" 
    ng-model="providerSelected" 
    uib-typeahead="provider as provider.name for provider in providers | filter:$viewValue | limitTo:8" placeholder="{{ 'new-product.provider.placeholder' | locate }}" 
/>

Я проверял размытие поля, если выбранный вариант был или нет на автозаполнении.

Проблема в том, что, когда пользователь нажимает на меню параметров, которое показывает автоколлекция, размытие запускается, и метка изменилась.

После того, как вы покинули поле снова, размытие запускается снова, и текст метки фиксирован.

Какое событие я могу вызвать, или что я могу сделать, чтобы исправить это?

  • 0
    Не могли бы вы создать jsfiddle с вашей проблемой? Это было бы очень полезно.
  • 2
    plnkr.co/edit/vk1WT3IQKOX3FhtIxfHn?p=preview Вот пример, пожалуйста, напишите на входе и выберите автозаполнение с помощью мыши (НЕ используя ввод)
Теги:
angular-ui-typeahead

1 ответ

0

Вы можете использовать атрибут директивы typeahead-on-select($item, $model, $label) который запускает вашу функцию при выборе элемента из раскрывающегося списка:

    <input 
        type="text" 
        ng-blur="blur()" 
        typeahead-on-select="blur()" 
        ng-model="selected" 
        uib-typeahead="provider as provider.name for provider in providers | filter:$viewValue | limitTo:8" class="form-control">

Другая попытка, но на самом деле не предлагаемая, - это $watch модель и проверять, соответствует ли она элементу из вашего массива.

  • 0
    Да, но на typeahead-on-select работает после blur , поэтому проблема та же. Я не могу удалить размытие, иначе, если текст записи не находится на автозаполнении, я не могу проверить
  • 0
    Да, но он немедленно перезагружается из-за typeahead-on-select . Вы пытались использовать $watcher ?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню