gpt4 book ai didi

angularjs - AngularJS 中的延迟异步验证器

转载 作者:行者123 更新时间:2023-12-02 23:54:37 24 4
gpt4 key购买 nike

我有以下指令:

.directive('validateAsync',
['$http', 'API_LOCATION', function($http, API_LOCATION) {

return {
require : 'ngModel',
link : function(scope, element, attrs, ngModel) {
var apiUrl = attrs.validateAsync;

function setAsLoading(bool) {
ngModel.$setValidity('asyncLoading', !bool);
}

function setAsAvailable(bool) {
ngModel.$setValidity('asyncAvailable', bool);
}

ngModel.$parsers.push(function(value) {
if(!value || value.length == 0) return;

setAsLoading(true);
setAsAvailable(false);

$http.get(API_LOCATION + apiUrl, {
params: {
value : value
}
})
.success(function() {
setAsLoading(false);
setAsAvailable(true);
})
.error(function() {
setAsLoading(false);
setAsAvailable(false);
});

return value;
})
}
}
}]);

它的名字是这样的:

<input ... validate-async="api/endpoint/to/check/validity">

效果很好,实际上太好了。因为它会在每次按键时触发请求。

我怎样才能让指令像300 ms一样等待在验证输入之前或使其触发 input blur 上的验证?

更新

这比我更容易:添加ng-model-options="{ debounce: 300 }"成功了。

谢谢JB Nizet引导我找到正确的答案

最佳答案

这比我更容易:添加 ng-model-options="{ debounce: 300 }"就成功了。

关于angularjs - AngularJS 中的延迟异步验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32137568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com