所以上次我问起我遇到的问题并得到了很好的答案,但现在我发现自己处于另一个问题上,我认为这是因为我不知道如何处理从$ http请求调用对象。 我承认我还没有100%确定如何处理$ q,但我开始使用和测试,但是当涉及到处理$ http请求中的方法时,需要来自另一个不同的$ http请求,事情变得非常混乱和混乱。 基本上我试图用这种方法做的是得到一个是假的还是真的响应,并且基于那个改变一个ng-class。 如果你能指出我正确的方向,我将不胜感激。
var app = angular.module('myApp', []);
app.controller('mainController', function($scope, $http, $q) {
var url = 'https://api.twitch.tv/kraken/channels/';
var url2 = 'https://api.twitch.tv/kraken/streams/';
$scope.channels = ["freecodecamp", "storbeck", "terakilobyte", "habathcx", "RobotCaleb", "comster404", "brunofin", "thomasballinger", "noobs2ninjas", "beohoff"];
$scope.infos = [];
$scope.fullLinks = $scope.channels.map(function(channel) {
return url + channel + '?callback=JSON_CALLBACK';
});
function getStatus(channel){
var fullUrl = url2 + channel.toLowerCase() + '?callback=JSON_CALLBACK';
$q.all($http.jsonp(fullUrl).success(function(data){
console.log(data.stream);
if(data.stream == null){
return false
} else {
return true
}
}));
}
$q.all($scope.fullLinks.map(function(url) {
return $http.jsonp(url).success(function(data) {
if(data.logo == null){
$scope.infos.push({
url: data.url,
logo: 'http://placehold.it/50x50',
name: data.display_name,
status: function() {
var _this = this;
return _this.getStatus(data.display_name);
}
});
} else {
$scope.infos.push({
url: data.url,
logo: data.logo,
name: data.display_name,
status: function(){
var _this = this;
return _this.getStatus(data.display_name);
}
});
}
});
}));
});