2015-05-13 3 views
0

Я использую angularui bootstrap typeahead модуль для моего проекта.angularui bootstrap typeahead- prepopulate выпадающий список onfocus

Я не могу предварительно заполнить выпадающее меню с предопределенным значением.
Каждый раз, когда пользователь нажимает на ввод текста typeahead, он должен автоматически показывать раскрывающееся меню предложения типа (из статического JSON).

Когда пользователь начинает вводить текст, поведение должно быть нормальным.

Я попытался this решение, но, к сожалению, он перестал работать, когда я модернизировал свои angularjs до версии 1,3

enter image description here

ответ

0

Так что я в основном достигается это путем пользовательской директивы и делая незначительные изменения в пользовательский интерфейс начальной загрузки машинописный код. Вы должны обмануть typeahead, думая, что кто-то набрал что-то в нем. Я разместил небольшую стрелку вниз справа от поля, поэтому, по существу, он выглядел как раскрывающийся список, и нажатие на эту стрелку показывало ВСЕ варианты. Вы должны быть в состоянии сделать это, используя onfocus.
В принципе найти код начальной загрузки машинописный, который связывается с ключевыми событиями, и я изменил его, чтобы проверить на KeyDown случае 40

  if(scope.matches.length === 0 && evt.which === 40) { // Added    
     // COMMENT OUT modelCtrl.$setViewValue(modelCtrl.$viewValue); 
          modelCtrl.$setViewValue(''); // Added 
      } 

Вы также должны убедиться, что typeaheadMinLength установлен в 0. Обратите внимание, что в приведенном выше коде проверяется случай, когда пользователь НЕ набрал что-либо И специальное событие keydown, которое я запускаю. Вы должны иметь возможность изменить это, чтобы активировать onfocus. Я скопировал bootstrap typeahead в mytypeahead.js, а затем модифицировал его, как указано выше, а также несколько других второстепенных модов, которые вам могут понадобиться или не понадобиться, в зависимости от того, является ли поле «обязательным» или нет.

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