1

私は角度が初めてなので、この質問に対する詳細な解決策が必要です。私は多くの答えを見てきましたが、私の状況によるとは限りません。

私はサービスを持っています:

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 の質問です。Angular がプロミス システムのために持っている機能$resourceをサポートします。timeout

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 に答える