Javascript 在AngularJS中处理$q.all和承诺时出错
给定以下代码:Javascript 在AngularJS中处理$q.all和承诺时出错,javascript,angularjs,angular-resource,Javascript,Angularjs,Angular Resource,给定以下代码: function Ctrl($scope, $http, $q) { var search = function(name) { if (name) { $http.get('http://api.discogs.com/database/search?type=artist&q='+ name +'&page=1&per_page=5'). success(function(data3) { $
function Ctrl($scope, $http, $q) {
var search = function(name) {
if (name) {
$http.get('http://api.discogs.com/database/search?type=artist&q='+ name +'&page=1&per_page=5').
success(function(data3) {
$scope.clicked = false;
$scope.results = data3.results;
});
}
$scope.reset = function () {
$scope.sliding = false;
$scope.name = undefined;
};
};
$scope.$watch('name', search, true);
var done = $scope.getDetails = function (id) {
$scope.clicked = true;
$scope.sliding = true;
var api = 'http://api.discogs.com/artists/';
return $q.all([$http.get(api + id),
$http.get(api + id + '/releases?page=1&per_page=100')]);
};
done.then(function (){
$scope.releases = data2.releases;
$scope.artist = data;
return $http.get('http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=e8aefa857fc74255570c1ee62b01cdba&artist=' + name + '&album='+ title +'&format=json');
});
我收到以下控制台错误:
TypeError: Object function (id) {
$scope.clicked = true;
$scope.sliding = true;
var api = 'http://api.discogs.com/artists/';
return $q.all([$http.get(api + id),
$http.get(api + id + '/releases?page=...<omitted>... } has no method 'then'
at new Ctrl (file:///C:/Users/Zuh/Desktop/AngularJS%20Discogs/js/services.js:27:9)
TypeError:对象函数(id){
$scope.clicked=true;
$scope.slideing=true;
var-api='1〕http://api.discogs.com/artists/';
返回$q.all([$http.get(api+id)),
$http.get(api+id+'/releases?page=..}没有方法“then”
按新的Ctrl键(file:///C:/Users/Zuh/Desktop/AngularJS%20Discogs/js/services.js:27:9)
有人能告诉我错误在哪里吗?我正在定义。然后在执行getDetails之后
这是一张。这是你的最新照片 总结如下:
- 将$q.all().then()部分移动到done方法中
- 请更加注意处理程序在
部分中收到了哪些参数,然后是
部分
angular.module('myApp', ['ngResource']);
function Ctrl($scope, $http, $q) {
var search = function(name) {
if (name) {
$http.get('http://api.discogs.com/database/search?type=artist&q='+ name +'&page=1&per_page=5').
success(function(data3) {
console.log(arguments)
$scope.clicked = false;
$scope.results = data3.results;
});
}
$scope.reset = function () {
$scope.sliding = false;
$scope.name = undefined;
};
};
$scope.$watch('name', search, true);
var done = $scope.getDetails = function (id) {
$scope.clicked = true;
$scope.sliding = true;
var api = 'http://api.discogs.com/artists/';
var q = $q.all([$http.get(api + id),
$http.get(api + id + '/releases?page=1&per_page=100')])
.then(function (ret){
//console.log(arguments)
$scope.releases = ret[1].data.releases;
$scope.artist = ret[0];
return $http.get('http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=e8aefa857fc74255570c1ee62b01cdba&artist=' + name + '&album='+ title +'&format=json');
})
return q
};
}