AngularJS - $cancelRequest 在 $resource 中不可用

2024-03-29

我正在尝试触发中止请求,但是我没有收到$cancelRequest对象的结果$resource。但是,我能够得到$promise and $resolved对象。

为什么会发生这种情况?我怎样才能得到这个$cancelRequest ?

PS:我正在使用 AngularJS 1.5

UPDATE:经过一些尝试和错误,我发现它不起作用,只是因为我使用的是 AngularJS 1.5 rc 0。现在,当我使用当前最新的 AngularJS 1.5 rc 2 时,它就起作用了。


根据文档,它仅适用于角度1.5 https://docs.angularjs.org/api/ngResource/service/%24resource :

$cancelRequest:如果存在与实例或集合相关的可取消的待处理请求,调用此方法将中止该请求。

我在上面看不到任何提及它的内容角度1.4 https://code.angularjs.org/1.4.9/docs/api/ngResource/service/%24resource...

我只能建议你更新到1.5版本,但它仍然是rc-1版本......

要启用它,您必须配置 $resource,默认情况下,它是禁用的:

具有应扩展默认值的自定义设置的哈希值 $resourceProvider 行为。支持的选项有:

stripTrailingSlashes – {boolean} – 如果为 true,则尾部斜杠 任何计算出的 URL 中的内容都将被删除。 (默认为 true。) cancellable – {boolean} – 如果为 true,则请求由 “非实例”调用将被取消(如果尚未完成) 在调用的返回值上调用 $cancelRequest()。这可以是 每个动作都会被覆盖。 (默认为 false。)

使用此代码

<html ng-app="test">
<head>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.1/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.1/angular-resource.min.js"></script>

<script>
angular.module('test', ['ngResource'])
.config(function($resourceProvider) {
    $resourceProvider.defaults.cancellable = true;
})
.factory('Resource', function($resource) {
    return $resource('api/test', {}, {
        test: { cancellable : true }
    });
})
.controller('myController', function($scope, Resource) {
    Resource.query().$cancelRequest(); // ok 
    Resource.test().$cancelRequest(); // ok
});

</script>

</head>
<body ng-controller="myController">

</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS - $cancelRequest 在 $resource 中不可用 的相关文章