Machen GET
& POST
Funktionen wie dies in apiService
function _get(url, config) {
var defer = $q.defer();
var promise = $http.get(url, { timeout: defer.promise});
promise.abort = function(reason){
defer.resolve(reason);
};
return promise;
}
dann auf dem Controller:
function doSearch(data){
angular.forEach($scope.bookSearchResult,function(book){
(book.lowestOnlinePricePromise =
bookService.getLowestOnlinePrice(book.bookIsbn)).then(function(response){
...
}).catch(function(response){
...
});
});
}
function onClick(){
angular.forEach($scope.bookSearchResult,function(resultBook){
resultBook.lowestOnlinePricePromise.abort();
});
}
In dieser Lösung wird eine abort()
Funktion wird mit dem promise
hinzugefügt. Dann wurde das einzige Versprechen auf Controller gespeichert.
Blick wieder
(book.lowestOnlinePricePromise = bookService.getLowestOnlinePrice(book.bookIsbn)).then()
Und wenn nur die abort()
Funktion benötigt nennen.
Hilfe gefunden: http://www.bennadel.com/blog/2616-aborting-ajax-requests-using-http-and-angularjs.htm