加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在AngularJS中,如何在查询更改时停止$http调用

发布时间:2020-12-17 09:16:49 所属栏目:安全 来源:网络整理
导读:我正在调用4到10 $http get调用并行.但是在用户搜索动作之后,我需要显示相同的视图,但是具有不同的结果.我填充一组数据和新的$http查询调用.但是以前的$http调用(承诺)仍然是填充或动作,影响$范围. 我可能的肮脏的解决方案是.. 使用可以由动态应用程序控制的
我正在调用4到10 $http get调用并行.但是在用户搜索动作之后,我需要显示相同的视图,但是具有不同的结果.我填充一组数据和新的$http查询调用.但是以前的$http调用(承诺)仍然是填充或动作,影响$范围.

我可能的肮脏的解决方案是..

使用可以由动态应用程序控制的动态区域的多应用程序(多模块)页面.在用户事件上删除与事件相对应的元素.例如,搜索结果,如果我想使用不同的$http调用来显示来自不同来源的结果.如果用户搜索新的关键字,我将删除结果ng-app元素和引导新元素.

您应该使用版本1.1.5,它可以取消$http请求:

https://github.com/angular/angular.js/blob/master/CHANGELOG.md

// set up a dummy canceler
var canceler = $q.defer();

// use it as a timeout canceler for the request
$http({method: 'GET',url: '/some',timeout: canceler.promise}).success(
    function (data) { alert("this won't be displayed on cancel"); }
).error(
    function (data) { alert("this will be displayed on cancel"); }
)

// now,cancel it (before it may come back with data)
$rootScope.$apply(function() {
    canceler.resolve();
});

您可以对所有请求使用相同的消除器,并在启动新集之前解决它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读