javascript - Angularjs - 中止/取消运行 $http 调用

标签 javascript angularjs autocomplete angular-resource angular-http

我在 angularjs 中使用 Resource 接到了一个调用,但我遇到了一些问题,因为我无法中止它所做的每个调用。我用于自动完成的这种结构..是否可以从资源调用转换为 http?这是代码

var Resource = $resource(URL, {},{ getAutocompleteResults: { method: "GET", params: {text: ""} }});

var locked = false;
function getMoreData() {

    if(locked)
        return;
    locked = true;

    Resource.autoCompleteResults()
        .$promise.then(function(data) {
            $scope.autocompleteViewResults = data;
            locked = false;
        });

}

这是我迄今为止尝试过的方法,但没有成功。

$scope.autocompleteViewResults = function () {
            $http
                .get(URL, {
                    params: {
                        text = ""
                    }
                })
                .success(function (data) {
                    $scope.autocompleteViewResults = data;
                });
        };

或者如果有人知道另一种方法..

最佳答案

$scope.autocompleteViewResults 变量被分配了 2 次。

试试这个:

$scope.autocompleteViewResults = {};
$scope.getResults = function(valueAsTyped) {
        $http
            .get(URL, {
                params: {
                    text: valueAsTyped
                }
            })
            .success(function (data) {
                $scope.autocompleteViewResults = data;
            });
  };

更新

如果您需要取消旧请求。

var promiseCanceller = $q.defer();
$scope.autocompleteViewResults = {};

$scope.getResults = function(valueAsTyped) {

        promiseCanceller.resolve('request cancelled'); // cancel currently running request
        $http
            .get(URL, {
                params: {
                    text: valueAsTyped
                },
                timeout: promiseCanceller.promise // pass promiseCanceller as the timeout
            })
            .success(function (data) {
                $scope.autocompleteViewResults = data;
            });
  };

关于javascript - Angularjs - 中止/取消运行 $http 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28669537/

相关文章:

autocomplete - Xcode 7.3 自动完成问题

javascript - 响应式d3刷牙

javascript - 如何使用行的 id 和链接的 rel 属性将 onclick 事件指向特定的表行内容 - jQuery

javascript - 无法在 Protractor 中使用 .click() 打开日期选择器 > "Failed: element not interactable"

javascript - 为什么angularjs Digest使用日期获取函数进入无限循环

javascript - 如何从angularjs中给定的json数据中获取质量率

javascript - AngularJS 动态 Assets 标签类似于 Mixture.io - HTML 模板

ios - 自动完成不适用于 Xcode 6 中的 "@"

javascript - 在 React App 中找不到 bundle.js 页面

emacs - 如何将 yasnippet 作为自动完成后端?