Так что я в основном достигается это путем пользовательской директивы и делая незначительные изменения в пользовательский интерфейс начальной загрузки машинописный код. Вы должны обмануть 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, а затем модифицировал его, как указано выше, а также несколько других второстепенных модов, которые вам могут понадобиться или не понадобиться, в зависимости от того, является ли поле «обязательным» или нет.