Здесь я вызываю fetchbookAllNew()
метод от fetchBooks()
, но с этим загрузчиком ajax не работает должным образом. Что я хочу, когда fetchBooks
называется загрузчиком ajax, должен отображаться до тех пор, пока все данные не будут получены в функции .done
.Как получить данные из нескольких вызовов ajax?
$scope.fetchBooks = function(){
$(".loader").show();
$.when(
fetchbookAllNew("all"),
fetchbookAllNew("epub"),
fetchbookAllNew("collection"),
fetchbookAllNew("video"),
).done(function(publishedAll, publishedEpub, publishedColl,publishedVideo){
$scope.allkitabooBooks = publishedAll;
$scope.allEpubBooks =publishedEpub;
$scope.allcollectionbooks = publishedColl;
$scope.allvideosbooks = publishedVideo;
$(".loader").fadeOut("slow");
});
};
var fetchbookAllNew = function(status){
var books = undefined;
$.ajax({
url:'/booksList', // Dynamically uploads the files which is chosen.
type: 'GET',
headers : {
'usertoken' : $rootScope.userDetails.userToken,
'status':status
},
cache: false,
async: false,
processData: false, // Don't process the files
contentType:'application/json', // Setting content type to "application/octet-stream"/"undefined" as jQuery will tell the server its not query string.
success: function (data) {
books=data;
},
error: function (data) {
}
});
return books;
};
вам нужно «вернуть $ .ajax», а не ответ. – Liam
Мне нужен ответ каждого запроса, чтобы показать данные в соответствии со статусом –
Также reomve ajax: false. Это неправильное решение. Таким образом, у вас есть как минимум 3 разных проблемы. – Liam