6

我设法使用这个答案不断地轮询后端功能 。

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

这是我当前的控制器(从step_11(Angular.js 教程)略有修改):

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

4

1 回答 1

10

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

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

这应该防止在模型资源正在获取数据时$scope.line为空时发生的闪烁。

于 2013-05-03T06:22:39.307 回答