在angularjs的文本框中显示build议

我有一个文本框,用户将键入他的地区的名称,并根据他的打字向他展示一些选项。 我正在做一个API调用来获取可能的数据。 api是用nodejs编写的。 我正在使用bootstrap.typeahed来显示可能的build议。 每当用户input一个字母时,我都会进行api调用。 这样做,但如果用户input速度非常快,则会遇到问题。 然后api调用不会按照它们被调用的顺序返回,所以用户有时会看到错误的数据。 如何防止这一点? 如果稍后的api调用已经结束,我可以拒绝api调用吗?

使用ng-model-options并设置debounce在定时器到期时调用api。 如果有人快速打字,它将一次捕获多个字母,并以较慢的速度打印一个字母。 这将给一个空间,所以没有混合。 如果拖延时间很短,它将平稳移动,不会有明显的延迟。

将此属性添加到您的元素
ng-model-options="{ debounce: 400 }"

尝试使用ng-model-options在模型更改时添加延迟。

 <input ng-model="model" ng-model-options="{updateOn: 'default blur', debounce: { 'default': 700, 'blur': 0 }}"></input>