8
我仍然在學習角JS和具有該控制器被做兩個Ajax請求使用不同的參數LastFM等API。我想知道,當每個請求已經完成,這樣我就可以顯示兩個請求負載指標。我研究它,瞭解承諾和$ Q服務,但不能讓我圍繞如何將其納入這個頭。有沒有更好的方法來設置它?我怎麼能知道每個請求完成。謝謝。Angularjs多個Ajax請求優化
angular.module('lastfm')
.controller('ProfileCtrl', function ($scope, ajaxData, usersSharedInformation, $routeParams) {
var username = $routeParams.user;
//Get Recent tracks
ajaxData.get({
method: 'user.getrecenttracks',
api_key: 'key would go here',
limit: 20,
user: username,
format: 'json'
})
.then(function (response) {
//Check reponse for error message
if (response.data.message) {
$scope.error = response.data.message;
} else {
$scope.songs = response.data.recenttracks.track;
}
});
//Get user info
ajaxData.get({
method: 'user.getInfo',
api_key: 'key would go here',
limit: 20,
user: username,
format: 'json'
})
.then(function (response) {
//Check reponse for error message
if (response.data.message) {
$scope.error = response.data.message;
} else {
$scope.user = response.data.user;
}
});
});
我有這樣的工廠使用$q.all()
負責處理所有的請求
angular.module('lastfm')
.factory('ajaxData', function ($http, $q) {
return {
get: function (params) {
return $http.get('http://ws.audioscrobbler.com/2.0/', {
params : params
});
}
}
});
啊非常感謝,是有道理的 – Allan
高興它爲你工作... 10個月後 – charlietfl