我在我的md-autocomplete一个 Web 表单上使用了角度输入。我已经完成了所有设置,并且运行良好。
正如预期的那样,每当我在自动完成输入中键入一个新字符时,都会调用我的后端来获取自动完成数据。问题是我不想每次输入新字符时都进行后端调用。我只希望自上次进行后端调用以来已经过了 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输入?