实时数据流应该根据上次接收的时间更改UI



我有实时数据,我必须在UI中更改指示器。这意味着如果我在过去30秒内没有收到数据,则指标应变红。如果在三十30秒之前收到数据,则应该是绿色的。请注意,数据接一个地进入函数。在这种情况下,指示器应更改每个数据(curvename(。

我已经使用了$超时和$间隔,但无法解决问题。任何帮助将不胜感激。

您可以在控制器中添加类似:

var timer,
    timeLimit = 30000; //30s limit
function onDataReceived(data) {
  //  cancel previous timer
  if(timer) $timeout.cancel(timer);
  // assuming data is good set indicator to green
  $scope.indicator = "green";
  // set 30s timer for indicator to go red
  timer = $timeout(function(){
    $scope.indicator = "red";
  }, timeLimit);
}

根据收到数据的收到的方式和应用结构,您可以考虑使用以下内容:

$scope.$watch('data', onDataReceived);

最新更新