AngularJS-使用$http和$timeout提前键入

AngularJS-使用$http和$timeout提前键入,angularjs,typeahead,Angularjs,Typeahead,我想在我的angular应用程序中实现一个typeahead 因此,当用户填写输入时,我希望等待1秒,并在1秒后验证输入是否相同,如果相同,则将请求发送到服务器 我通过在$timeout中实现$http来实现它,这很成功,但我想知道这是否是一种好方法 这是我的控制器: $scope.getLocation = function (input) { var input_tmp = input; return $timeout(function () {

我想在我的angular应用程序中实现一个typeahead

因此,当用户填写输入时,我希望等待1秒,并在1秒后验证输入是否相同,如果相同,则将请求发送到服务器

我通过在$timeout中实现$http来实现它,这很成功,但我想知道这是否是一种好方法

这是我的控制器:

$scope.getLocation = function (input) {

        var input_tmp = input;

        return $timeout(function () {
            if (input === input_tmp) {

                $scope.query.FilterIdentification = input;

                return $http.get(SERVER_REST.url, $scope.query)
                    .then(function (res) {
                        var addresses = [];

                        angular.forEach(res.data, function (item) {
                            addresses.push(item);
                        });

                        return addresses;
                    });
            }
        }, 1000);

    };

我知道这是一个很老的问题,我只是想指出,这是一个内置功能:

“typeahead wait ms(默认值:0):在typeahead开始之前键入最后一个字符后的最短等待时间”

除此之外,我认为你做这件事的方式没有错