我有实时数据,我必须在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);