我正在使用angular-block-ui
库来处理我所有的http
请求,以防止用户输入。
我已经使用input
和datalist
元素在网页上实现了自动完成功能。我的问题是,每次我在自动完成block-ui
中输入值时,都会以某种方式导致datalist
失去焦点并导致datalist
闪烁。闪烁之后,您必须单击datalist
以查看数据。
我尝试使用以下代码段防止在向block-ui
元素中输入值时出现input
。
blockUI.stop();
参考: https://github.com/McNull/angular-block-ui
但是,这不起作用。有没有人遇到block-ui
的同一问题并且能够解决?非常感谢您提供反馈以帮助解决我的问题。
HTML:
<input id="product-code" class="col-md-2" type="text" placeholder="Product Code" name="productCode" list="search-list" ng-keyup="searchForProducts(productCode)" ng-model="productCode" />
<datalist id="search-list">
<option ng-repeat="productCode in productCodeList" value="{{productCode}}">
</datalist>
JavaScript:
$scope.searchForProducts = function (productCode) {
let code = productCode != undefined ? productCode : "";
// when the product code is empty don't bother searching for products
if (code != "") {
worksOrderFactory.searchForProductCodes(productCode).then(function (data) {
blockUI.stop();
$scope.productCodeList = data;
});
}
};
我在承诺之外也使用了blockUI.stop();
,但还是没有运气。
注意::在测试过程中,我从网站上删除了block-ui
,自动填充功能可以按需运行。
答案 0 :(得分:0)
因此,经过反复试验,我终于能够解决我的问题。在我进行block-ui
调用之前,我成功阻止了http
和下面的代码行出现。
blockUIConfig.requestFilter = function () {
return false;
};