2013-05-03 1 views
6

мне удалось получить постоянный опрос бэкэнда функционального использования this answer.Non-Мерцание опроса в Угловом с REST Backend

Но на каждом тайме-ауте интерфейс мерцает (пустую модель на короткое время). Как я могу обновить модель (и вид соответственно) после Новые данные прибыли во избежание этого мерцающего эффекта?

Вот мой текущий контроллер (немного изменен от step_11 (Angular.js Tutorial)):

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

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

} 

// Редактирование: Я использую текущей стабильной 1.0.6 Angular.js

ответ

10

Попробуйте обновить данные в обратный вызов успеха. Что-то вроде этого:

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

Это должно предотвратить мерцание, возникающее, когда $scope.line пуст, как модель resource является выборкой данных.

+0

УДИВИТЕЛЬНОЕ: работает как очарование! Спасибо! – user1126545

+0

Что делать, если я получаю сообщение об ошибке? – naneri