2016-05-21 6 views
1

So versuche ich load mehr Funktion zu machen. Ich hole Daten von twitch API und es kommt als Array von Objekten.AngularJS Laden Sie mehr Funktion

$ scope.myName ist ein Array, in dem Daten gespeichert sind und es in ng-repeat verwendet wird.
$ scope.x ist eine Variable, die für den Offset verwendet wird und nach dem Anklicken wird die Schaltfläche inkrementiert und zum Abrufen neuer Streams verwendet. Wenn ich auf die Schaltfläche klicke, werden 9 alte Streams gelöscht und 9 neue Streams geladen und einfach jedes Mal 9 weitere hinzufügen, wenn auf die Schaltfläche geklickt wird. Siehe hier: https://plnkr.co/edit/TbOf9hkPILJn2snW8D7A Danke.

+1

Warum laden Sie 3 verschiedene eckige Versionen? Vor allem warum angular-2 laden, wenn Ihr Code für angular-1 eingestellt ist? – charlietfl

+0

Das ist nur für PLNKR Ursache manchmal funktioniert es nicht, also lade ich alle nur sicher sein. – prp101

+0

Das macht keinen Sinn und nur über kompliziertere Demo – charlietfl

Antwort

0

Wenn ich Problem gut verstanden, sollten Sie nur Ihre Daten Array anhängen anstatt sie zu ersetzen:

$scope.myName = []; 
$scope.loadData = function() { 

$http.get("https://api.twitch.tv/kraken/streams?limit=9&offset=" + $scope.x).then(function(response) { 
    // add streams to existing array 
    Array.prototype.push.apply($scope.myName, response.data.streams); 

    $scope.link="http://player.twitch.tv/?channel="; 
    return $scope.x=$scope.x + 9; }); }; 
    //initial load 
    $scope.loadData(); 
+2

einfacher zu verwenden, wie 'Array.push.apply()' – charlietfl

+0

Guter Punkt, aktualisierte ich meine Antwort. – PJDev

+0

Yeeees das ist es, danke euch beiden sehr :) Ich wusste, dass ich anhängen musste, konnte einfach nicht die richtige Syntax finden. Vielen Dank. :) – prp101

0

HERE IS THE SOLUTION OF PLNKR

ich geändert habe Streamovi Controller und zusätzliche Belastung mehr Taste an der Unterseite, so dass Sie kann mehr laden

app.controller('Streamovi', function($scope, $http) { 

    var ITEMS_PER_LOAD = 9; 
    var offset = 0; 
    $scope.myName = []; 

    function loadStreams(){ 
    $http.get("https://api.twitch.tv/kraken/streams?limit="+ITEMS_PER_LOAD+'&offset='+offset).then(function(response) { 
     $scope.myName = $scope.myName.concat(response.data.streams); 
     $scope.link="http://player.twitch.tv/?channel="; 
     offset+=ITEMS_PER_LOAD; 
    }); 
    } 

    //handler for the "Load More" button in the view. 
    $scope.loadMore = function(){ 
    loadStreams(); 
    } 

    //initial Loading 
    loadStreams(); 
}); 
+0

Danke :) Funktioniert wie ein Charme. – prp101