0

Ich versuche Zucken api zu verwenden und ich muss wissen, welche Benutzer online istAngularJS warum für/Schleife Überschreiben der Array-Elemente

//Initialize the App 
var channels = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"]; 
var app = angular.module('Twitch', []); 

//main controller 

app.controller("MainController", function ($scope, $http) { 

    //Where controller variables are assigned 

    // create the game Object 
    var result = {}; 
    $scope.results = []; 
    var stream = {}; 
    var care = ""; 
    $scope.streams = []; 
    var url = 'https://api.twitch.tv/kraken/channels/'; 

    for (var x = 0; x < channels.length; x++) { 

     $http.jsonp(url + channels[x] + '?callback=JSON_CALLBACK').success(function (data) { 
      result = data; 
      var id = data._id; 
      var name = data.name; 

      $scope.url = "http://static-cdn.jtvnw.net/jtv_user_pictures/" + name + "-profile_image-" + id + "-300x300.jpeg"; 
      $scope.image = data.logo; 
      $scope.name = data.name; 
      $scope.status = data.status; 

      $http.jsonp("https://api.twitch.tv/kraken/streams/" + channels[x] + "?callback=JSON_CALLBACK").success(function (data) { 
       var streaming = (data.stream === null) ? false : true; 
       if (streaming) { 
        result.off = 'online'; 
        var streamTitle = data.stream.channel.status; 

        if (streamTitle.length > 36) { 
         streamTitle = streamTitle.substring(0, 33); 
         streamTitle += '...'; 
        } 
        result.streamTitle = streamTitle; 
       } else { 
        result.off = 'offline'; 
        data.streamTitle = ''; 
       } 
       result.username = channels[x]; 
      }); 

      $scope.results.push(result); 

      console.log(result); 
     }).error(function (data) { 
      // something went wrong :(
      console.log('Got nothing'); 
     }); 
    } 
}); 

I Variable erstellt, die result.off ist der Statuswert für den Benutzer zu halten

(online/offline) und ich bin diese Werte innerhalb Tabelle zeigt

<div class="container text-center text-middle" ng-controller='MainController'> 
    <table class="table" ng-repeat="result in results"> 
     <tbody> 
      <tr ng-class="satus"> 
       <td><a class="media-left" href="#"> 
        <img ng-src={{result.logo}} alt="image" class="img-circle img-middle " width='50px'> </a></td> 
       <td> 
        <h4 class="media-heading">{{result.name}} <span class="label"><p>{{result.off}}</p></span></h4> 
       </td> 
       <td><h4>{{result.status}}</h4></td> 
      </tr> 
     </tbody> 
    </table> 
</div> 

der Ausdruck result.off zeigt nur die letzte Benutzerstatus in t er

+0

EDIT: ich habe Variable, die reult.off (nicht user.off) den Statuswert für den Benutzer (onlin/offline) zu halten und ich bin diese Werte innerhalb Tabelle –

+0

in yo zeigt Die Ergebnis-Array-Prüfung auf result.off-Wert für jeden Benutzer enthält Daten oder nicht –

+0

nur das letzte Objekt, das über die Eigenschaft off verfügt –

Antwort

0

Versuchen listen die result Variable innerhalb der für sich zu bewegen - Schleife

wenn Sie result = data; tun Sie nur den Wert überschreiben und es zu schieben.

Das resultierende Array eine Liste des gleichen Objektes ist

0

das variable Ergebnis leeres Objekt nach der Schleife durchgeführt werden soll beginnt

so kann es innerhalb der Schleife iteriert werden, andernfalls wird der Wert

overritten wird
channels.forEach(function(channel) { 
    $http.jsonp(url + channel + '?callback=JSON_CALLBACK').success(function(data) { 
     var result = {};