我有实时数据进入,基于此我必须在UI中更改指标。这意味着如果我在过去30秒内没有收到数据,则指示灯应变为红色。如果在30秒之前收到数据,则应为绿色。请注意,数据一个接一个地进入函数。在这种情况下,指标应该针对每个数据(curveName)进行更改。
我使用了$ timeout和$ interval,但无法解决问题。任何帮助将不胜感激。
答案 0 :(得分:0)
您可以在控制器中添加以下内容:
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);