由于angular-block-ui库,自动完成失去了焦点

时间:2018-11-16 14:55:49

标签: javascript html angularjs

我正在使用angular-block-ui库来处理我所有的http请求,以防止用户输入。

我已经使用inputdatalist元素在网页上实现了自动完成功能。我的问题是,每次我在自动完成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,自动填充功能可以按需运行。

1 个答案:

答案 0 :(得分:0)

因此,经过反复试验,我终于能够解决我的问题。在我进行block-ui调用之前,我成功阻止了http和下面的代码行出现。

blockUIConfig.requestFilter = function () {
    return false;
};