Я создал функцию таймера, которая принимает будущую дату в виде строки и принимает разницу с текущей датой для ЧЧ: ММ: СС и запускает таймер уменьшения.Когда таймеры становятся 00:00:00, строка таблицы должна мигать.
Я создал функцию, таймер и строка также начали мигать.Но таймер показывает одинаковое значение для всех строк, и все строки начали мигать.Я хочу, чтобы это было независимо для каждой строки, т.е. каждая строка должна иметь свой независимый таймер, отображающий не одно и то же значение в каждой.
Ниже приведена функция внутри контроллера -
$scope.timeInitializer = function (timeFromApi) {
$scope.blinkAlarmOn = false;
$scope.currentTimeUTCMiliSec = new Date(new Date().toUTCString()).getTime();
$scope.targetDeployDate = timeFromApi.split('.')[0]+"Z";
$scope.deployTimeUTCMiliSec = new Date(new Date(Date.parse($scope.targetDeployDate)).toUTCString()).getTime();
$scope.differenceDateUTC = new Date($scope.deployTimeUTCMiliSec - $scope.currentTimeUTCMiliSec).toUTCString();
$scope.totalSecondLeft = Math.floor(($scope.deployTimeUTCMiliSec - $scope.currentTimeUTCMiliSec)/1000);
$scope.c = $scope.totalSecondLeft;
$scope.hrs = new Date($scope.differenceDateUTC).getUTCHours();
$scope.mins=new Date($scope.differenceDateUTC).getUTCMinutes();
$scope.secs=new Date($scope.differenceDateUTC).getUTCSeconds();
$scope.temp = $interval(function () {
if ($scope.c != 0 && $scope.secs > 0) {
$scope.c--;
$scope.secs--;
if ($scope.secs == 0 && $scope.mins > 0) {
$scope.mins--;
$scope.secs=59;
if ($scope.mins==0 && $scope.hrs > 0) {
$scope.hrs--;
$scope.mins = 59;
}
}
}
if( ($scope.hrs == 0) && ($scope.mins == 0) && ($scope.secs == 0)) {
$interval.cancel($scope.temp);
$scope.blinkAlarmOn=true;
}
},1000);
};
Вызов функции внутри пользовательского интерфейса
<td>
<div ng-show="tckt.state=='DELAY_DEPLOYMENT'"
ng-if="tckt.state=='DELAY_DEPLOYMENT'" ng-
init="timeInitializer(tckt.deploymentDatetime)">{{hrs+":"+mins+":"+secs}}
</div>
</td>