具有REST后端的Angular中的非闪烁轮询

时间:2013-05-03 06:09:05

标签: rest angularjs polling flicker

我设法获得后端功能的持续轮询使用 this answer.

但是在每次超时时,UI都会闪烁(短时间内为空模型)。 如何在新数据到达后更新模型(和视图) 为了避免这种闪烁效应?

这是我当前的控制器(稍微修改自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);
    });
})();

}

//编辑:我正在使用当前稳定的Angular.js 1.0.6

1 个答案:

答案 0 :(得分:10)

尝试更新成功回调中的数据。像这样:

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

当模型resource正在获取数据时,这应该可以防止$scope.line为空时发生的闪烁。