2013-05-03 7 views
6

ich es geschafft, eine konstante Abfrage des funktionellen this answer.nicht flimmernde Polling in Angular mit REST Backend

mit Backend bekommen aber auf jedem Timeout der UI flackert (leer Modell für eine kurze Zeit). Wie kann ich das Modell (bzw. die Ansicht) nach aktualisieren die neuen Daten angekommen, um diesen flackernden Effekt zu vermeiden?

Hier ist mein aktueller Controller (leicht von step_11 (Angular.js Tutorial) modifizierte):

function MyPollingCtrl($scope, $routeParams, $timeout, Model) { 

(function tick() { 
    $scope.line = Model.get({ 
     modelId : $routeParams.modelId 
    }, function(model) { 
     $timeout(tick, 2000); 
    }); 
})(); 

} 

// edit: Ich bin die aktuelle stabile 1.0.6 von Angularjs mit

Antwort

10

Versuchen Sie, die Daten bei der Aktualisierung der Erfolgsrückruf. Etwas wie folgt aus:

(function tick() { 
    Model.get({ 
     modelId : $routeParams.modelId 
    }, function(model) { 
     $scope.line = model;  
     $timeout(tick, 2000); 
    }); 
})(); 

Dies sollte das Flimmern verhindern, die auftritt, wenn $scope.line leer ist wie das Modell resource wird, um die Daten zu holen.

+0

FANTASTISCH: funktioniert wie ein Charme! Vielen Dank! – user1126545

+0

Was passiert, wenn ein Fehler auftritt? – naneri