如何知道用户何时停止编辑angularJS中的自动完成字段



我有一个自动完成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模型,并检查它是否与数组中的元素匹配。

最新更新