1

我是 Angular 新手,所以我需要详细解决这个问题。我看过很多答案,但不是根据我的情况。

我有一个服务:

function ticketService($resource, globals) {
        return $resource(globals.API_URL+'/tickets/:id', {id: '@id'}, {
            update: {method: 'PUT'}
        });
    }

现在我需要在拨打新电话时取消之前的通话。我如何需要在这里使用超时参数?

在控制器中,我像这样调用此服务:

ticketService.get({group_by: type}, function(data) {
.
.
.
.
});

我需要如何更改我的服务和控制器。

谢谢。

4

1 回答 1

3

这个例子是这个以前的 Stackoverflow 问题也应该适用于您的要求。$resource支持timeoutAngular 的 promise 系统的特性。

如何在 AngularJS 中取消 $http 请求?

var canceller;

function ticketService($resource, globals) {
    canceller = $q.defer();

    return $resource(globals.API_URL + '/tickets/:id', {
        timeout: canceller.promise,
        id: '@id'
    }, {
        update: {method: 'PUT'}
    });
}

function cancelRequest() {
    if (canceller) {
        // You could also use a $timeout timer to cancel it
        canceller.resolve('cancelled');
    }
}
于 2015-04-01T23:40:52.537 回答