我有一个使用AngularUI's typeahead feature的文字字段。它看起来像这样:
<input typeahead="eye for eye in autocomplete[column] | filter:$viewValue">
我想强制用户从生成的列表中选择一个选项。如果他们输入的内容与列表中的内容不完全相同,则在模糊处(单击文本字段外部)时,我希望文本字段的值重置为原始值。<\ n / p>
此功能是typeahead指令的一部分,还是需要扩展它?我在google和stackoverflow上搜索了大约10分钟,但无法找到任何相关文档。
任何人都可以指出我正确的方向来实现这个目标吗?
答案 0 :(得分:14)
插件中有一个属性仅强制使用现有值:typeahead-editable="false"
。默认值为true
。
当选择了错误的值时,只有$modelValue
被设置为空,这实际上是必要的,否则我们将无法写任何内容。 $viewValue
保留最后输入的文字。您可以将自己的模糊事件绑定到字段以重置$viewValue
?
以下是显示所选值的JsFiddle:http://jsfiddle.net/ZjPWe/61/
您还可以使用在选择值时需要回调的属性typeahead-on-select
,但我不确定它是否适用于typeahead-editable="false"
,因为没有选择任何值。