如何在angulajs中添加间隔时间?

时间:2019-02-07 09:16:21

标签: javascript html angularjs momentjs

我正在实现模拟和数字时钟,但问题是时间没有显示实时时间,如何设置时间间隔以每秒刷新一次时间?

$scope.TimeZ = moment().format('MMMM Do YYYY, h:mm:ss a');
function TimeZoneDetails(time, date, content, name) {
    this.Time = time;
    this.Date = date;
    this.Content = content;
    this.Name = name;
}
$scope.LstTimeZoneDetails = [];

$($scope.TimeZone.split(", ")).each(function (key, value) {
    var objTimeZoneDetails = new TimeZoneDetails(moment.tz(value).format('LT'),
        moment.tz(value).format('LL'),
        moment.tz.zone(value).abbr(moment.utc().valueOf()),
        moment.tz.zone(value).name);
    //push values to array
    $scope.LstTimeZoneDetails.push(objTimeZoneDetails);
    timedUpdate();
})

enter image description here

2 个答案:

答案 0 :(得分:2)

角度本身没有间隔,可以使用。

var intervalID = window.setInterval(myCallback, 1 * 1000);

function myCallback() {
  console.log('Time');
}

将“ 1 ”替换为您希望的时间。 目前,间隔设置为 1秒

要破坏或停止间隔使用。

clearInterval(intervalID);

答案 1 :(得分:1)

从AngularJS Documentation

您需要的是:$timeout([fn], [delay], [invokeApply], [Pass]);

在您的情况下:

// Set the delay in milliseconds: 1000ms = 1s
var delayInterval = 1000;

// A function to update the time
function updateTime() {
    // Some code to update time...
}

// Pass the updateTime function as first parameter and the deplayInterval as the second parameter to the AngularJS $timeout function.
$timeout(updateTime, delayInterval);

updateTime()函数中,您可以间隔放置想要执行的代码(无论您需要什么),然后updateTime()毫秒将调用一次delayInterval函数。