输入输入时如何限制对我的后端的 md-autocomplete 调用?
Posted
技术标签:
【中文标题】输入输入时如何限制对我的后端的 md-autocomplete 调用?【英文标题】:How to throttle md-autocomplete calls to my back-end when typing into an input? 【发布时间】:2016-12-27 19:54:50 【问题描述】:我在我的一个 Web 表单上使用角度 md-autocomplete
输入。我已经完成了所有设置,并且运行良好。
正如预期的那样,每当我在自动完成输入中键入一个新字符时,都会调用我的后端来获取自动完成数据。问题是我不想每次输入新字符时都进行后端调用。我只希望在自上次进行后端调用后已经过了 x 秒时触发后端调用。
输入字符时调用的函数如下:
函数自动完成(输入值) var deferred = $q.defer(); 门户状态.apiPost( 'api/猫/搜索', 搜索类型:'全部', 搜索词:输入值 , 功能(响应) deferred.resolve(response.data); , 功能(响应) deferred.resolve(null); ); 返回 deferred.promise;
这是我在尝试加入任何节流逻辑之前的工作功能。当我输入节流逻辑时,我遇到的主要问题是我不知道返回什么不会导致 angular 抛出错误,例如:
函数自动完成(输入值) var isCool = 假; 如果(是酷) var deferred = $q.defer(); 门户状态.apiPost( 'api/猫/搜索', 搜索类型:'全部', 搜索词:输入值 , 功能(响应) deferred.resolve(response.data); , 功能(响应) deferred.resolve(null); ); 返回 deferred.promise; 别的 //有没有什么 //空的承诺我可以返回 //所以角度不会 //抛出一个错误
如果我不想进行后端调用,我可以返回什么?还是有更简单的方法来限制角度 md-autocomplete
输入?
【问题讨论】:
您可以在后端开始搜索之前设置多个字符 【参考方案1】:如果您查看有关 Angular Material 的文档,您可以设置两件事。
使用md-min-length
在您的后端开始搜索的字符数
或者还有md-delay
的毫秒数
请在此处查看md-autocomplete
【讨论】:
以上是关于输入输入时如何限制对我的后端的 md-autocomplete 调用?的主要内容,如果未能解决你的问题,请参考以下文章