我有一个自动完成angular ui typeahead的输入。
用户开始键入,他们可以从自动完成中选择一个选项,也可以键入未列出的文本。
如果用户不使用自动完成,我必须更改标签的文本,说this element will be added
<input
ng-blur="checkIfNewProvider()"
ng-model="providerSelected"
uib-typeahead="provider as provider.name for provider in providers | filter:$viewValue | limitTo:8" placeholder="{{ 'new-product.provider.placeholder' | locate }}"
/>
我正在检查字段的模糊情况,如果选择的选项是否在自动完成上。
问题是,当用户单击自动合成显示的选项菜单时,会触发模糊,标签也会更改。
再次离开字段后,将再次触发模糊,并固定标签文本。
我可以触发什么事件,或者我可以做些什么来解决这个问题?
当从下拉菜单中选择元素时,可以使用指令的属性typeahead-on-select($item, $model, $label)
来触发函数:
<input
type="text"
ng-blur="blur()"
typeahead-on-select="blur()"
ng-model="selected"
uib-typeahead="provider as provider.name for provider in providers | filter:$viewValue | limitTo:8" class="form-control">
另一种尝试(但并非真正建议)是$watch
模型,并检查它是否与数组中的元素匹配。