2017-08-26 53 views
0

我想将其转换为AngularJS,但我不知道从哪里开始转换`setInterval`到AngularJS与angularJS服务

// Set the date we're counting down to 
    var countDownDate = new Date("Oct 1, 2022 15:37:25").getTime(); 
    // Update the count down every 1 second 
    var x = setInterval(function() { 

     // Get todays date and time 
     var now = new Date().getTime(); 

     // Find the distance between now an the count down date 
     var distance = countDownDate - now; 

     // Time calculations for days, hours, minutes and seconds 
     var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
     var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
     var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
     var seconds = Math.floor((distance % (1000 * 60))/1000); 

     $('#clock-days').text(days); 
     $('#clock-hours').text(hours); 
     $('#clock-minutes').text(minutes); 
     $('#clock-seconds').text(seconds);  
    }, 1000); 

第一个问题是数学的功能不可用,怎么写区间?

+0

其中数学不可用? angularjs或角? –

回答

3

您可以在控制器中将setInterval替换为$interval,然后将var变量更改为范围变量,请研究下面的提琴以确定差异。

DEMO:JSFiddle

var app = angular.module('myApp', []); 
app.controller('MyController', ['$scope', '$interval', function($scope, $interval) { 
    var countDownDate = new Date("Oct 1, 2022 15:37:25").getTime(); 
    // Update the count down every 1 second 
    var x = $interval(function() { 

     // Get todays date and time 
     var now = new Date().getTime(); 

     // Find the distance between now an the count down date 
     var distance = countDownDate - now; 

     // Time calculations for days, hours, minutes and seconds 
     $scope.days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
     $scope.hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
     $scope.minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
     $scope.seconds = Math.floor((distance % (1000 * 60))/1000); 
    }, 1000); 
}]);