AngularJS Bootstrap:限制预先输出结果

时间:2014-09-02 19:51:12

标签: angularjs twitter-bootstrap angular-ui-bootstrap bootstrap-typeahead

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

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

['alison','bentley','christopher'];

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

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

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

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

Here is a plunker:

如果删除typeahead-editable,则基本预先输入应该有效。

2 个答案:

答案 0 :(得分:8)

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

<input 
  ng-model="name"
  typeahead="address for address in locations | filter:$viewValue | limitTo:5" />

这是demo

答案 1 :(得分:0)

它基本上是一个输入文本框,因此您应该编写自己的指令并绑定键事件/内容更改事件。