2016-07-23 9 views
0

Hier ist mein Winkelregler mit einem Service-Aufruf für meine JSON-Daten.Aktualisieren eines Diagramms mit neuen Daten alle 2 Sekunden

.controller('mainCtrl', function ($scope, jsondata, $interval, $timeout) { 
    var _this = this; 
    jsondata.getJsonData().then(function(data) { 
     $scope.items = _this.items; 
    var oneArray = _this.items.map(function(v) { 
     return v.id1; 
    }); 
    var twoArray = _this.items.map(function(v) { 
     return v.id2; 
    }); 



     **$scope.data = [ 
     oneArray 
     ];** 
    }); 
}); 

Dies funktioniert nur gut. Aber ich möchte die Diagrammdaten alle zwei Sekunden zwischen oneArray und twoArray ändern. Und ich möchte, dass es unendlich ist ... einfach zwischen den beiden Datenfeldern hin- und herzuschalten und so eine Art Echtzeiteffekt zu erzeugen.

+0

Können Sie einen Jsfiddle Link zur Verfügung stellen? –

Antwort

0

Ich glaube, Sie haben „setInterval“ in Ihrem Fall zu verwenden, versuchen, eine Sache, ähnlich wie dies zu tun:

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

    // Function to get the data 
    $scope.getData = function(){ 
    $http.get('style.css') 
     .success(function(data, status, headers, config) { 

     // Your code here 
     console.log('Fetched data!'); 
    }); 
    }; 

    // Function to replicate setInterval using $timeout service. 
    $scope.intervalFunction = function(){ 
    $timeout(function() { 
     $scope.getData(); 
     $scope.intervalFunction(); 
    }, 1000) 
    }; 

    // Kick off the interval 
    $scope.intervalFunction(); 

}); 
+0

Hallo @ruslan Ich verwende einen eckigen Service außerhalb meines Controllers, um die Daten zu erhalten. Ich nehme an, dass getData nicht verwendet wird, wie Sie es mit eckigen $ http getan haben. –

+0

Es pendelt am Ende, wie Sie Daten erhalten. Ich sehe, dass Sie Versprechen verwenden, um Daten von externen Service zu erhalten, wenn Sie diese Versprechen zu lösen gehen (in Ihrem Fall ist "jsondata.getJsonData(). Dann (Funktion (Daten) {// tue etwas}) Sie müssen den Bereich benachrichtigen, dass etwas geändert wurde, um $ scope zu verwenden. $ apply() – Ruslan