2017-08-26 70 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); 
}]);