AngularJS Bootstrap:限制预先输出结果

Jos*_*osa 2 twitter-bootstrap angularjs bootstrap-typeahead angular-ui-bootstrap

我有一个简单的文本字段,使用typeahead与数组的结果.我想限制用户输入只能在数组中输入/选择结果.

如果我的数组看起来像这样:

['alison','bentley','christopher'];
Run Code Online (Sandbox Code Playgroud)

用户可以键入'ali',或者'topher',但最终,预先输入应该选择当前突出显示的内容(如果输入模糊)或用户选择.

但是,用户不应该键入'z',因为它与数组中的任何内容都不匹配.它根本不应该让他们输入.

这是否已经存在,或者我是否需要创建自定义指令?我搜索了其他类似的问题,但它们并不完全相同.

我尝试过使用typeahead-editable,因为我认为这就是我所需要的,但它阻止了预先完成工作.在bootstrap网站上,它将其描述为 "Should it restrict model values to the ones selected from the popup only?"我做错了什么?

这是一个plunker:

如果删除typeahead-editable,基本预先应该可以工作.

Cés*_*sar 8

默认情况下,Typeahead不会过滤数组,您需要使用filter:$viewValue例如声明它

<input 
  ng-model="name"
  typeahead="address for address in locations | filter:$viewValue | limitTo:5" />
Run Code Online (Sandbox Code Playgroud)

这是一个演示