api调用AngularJS在回答正确答案时遇到问题

时间:2015-06-21 07:11:47

标签: angularjs api http

所以上次我问起我遇到的问题并得到了很好的答案,但现在我发现自己处于另一个问题上,我认为这是因为我不知道如何处理从$ 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);
            }
          });  
        }
    });
}));
});

0 个答案:

没有答案