我有一个简单的文本字段,它使用typeahead和数组结果。我想限制用户输入只能在数组中输入/选择结果。
如果我的数组看起来像这样:
['alison','bentley','christopher'];
用户可以输入'ali'
或'topher'
,但最后,预先输入应选择当前突出显示的内容(如果输入模糊)或用户选择。
但是,用户不应该键入'z'
,因为它与数组中的任何内容都不匹配。它根本不应该让它们输入。
这是否已经存在,或者我是否需要创建自定义指令?我搜索了其他类似的问题,但它们并不完全相同。
我尝试使用typeahead-editable
,因为我认为这就是我所需要的,但它阻止了预先完成工作。在bootstrap网站上,它将其描述为"Should it restrict model values to the ones selected from the popup only?"
我做错了什么?
如果删除typeahead-editable
,则基本预先输入应该有效。
答案 0 :(得分:8)
默认情况下,Typeahead不会过滤数组,您需要使用filter:$viewValue
声明它,例如
<input
ng-model="name"
typeahead="address for address in locations | filter:$viewValue | limitTo:5" />
这是demo
答案 1 :(得分:0)
它基本上是一个输入文本框,因此您应该编写自己的指令并绑定键事件/内容更改事件。