在angularjs的文本框中显示建议

时间:2016-04-21 14:56:37

标签: angularjs node.js bootstrap-typeahead

我有一个文本框,用户可以在其中输入他的地区名称,我根据他的打字向他展示了一些选项。我正在进行api调用以获取可能的数据。 api是用nodejs编写的。我正在使用bootstrap.typeahed来显示可能的建议。每当用户键入一个字母时,我都会进行api调用。这已经完成,但如果用户输入速度非常快,我就会遇到问题。然后api调用没有以它们被调用的相同顺序返回,因此用户有时会看到错误的数据。怎么预防这个?如果以后的api呼叫已经结束,我可以拒绝api呼叫吗?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

使用ng-model-options并设置debounce以在计时器到期时调用api。 如果某人正在快速打字,它将捕获多个字母,并且每次一个字母的速度较慢。这会给你一点空间,所以没有混乱。如果延迟很短,它将顺利移动,没有明显的延迟。


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