2014-11-03 34 views
0

我想在用戶的系統日期更改時刷新我的頁面內容。 用戶在03 - 11 - 2012年11月3日中午訪問該頁面,當系統日期更改爲04-11-2014(11月4日)時,應刷新內容或調用函數。AngularJS:系統日期更改時調用函數

我們可以使用$interval(checksysDate(),5000)其中checksysDate()將檢查日期是否以5000的間隔更改。但是,我想知道我們是否可以在系統日期使用$scope.$watch(僅限日期,即11月3日或4日,而不是時間)。
任何優雅的解決方案?

感謝,

+0

http://stackoverflow.com/a/14236033/ 1182982可能是有用的 – Yasser 2014-11-03 07:17:08

+0

Yasser的評論。如果你瞭解摘要循環,你就會明白你的想法爲什麼不起作用。 但是,爲什麼你只是沒有實現一個超時你將剩餘時間設置爲24 - 當前時間?還是比間隔更好... – Charminbear 2014-11-03 07:18:32

+0

同意@Charminbear。最好不要使用$ watch。計算打開頁面時的時間間隔。和setTimeout(第二天 - 現在)更改日期(然後使用間隔觸發日期更改每24小時)。 – 2014-11-03 07:31:00

回答

0

你可以做這樣的事情,但它是不漂亮...

angular.module("test", []).controller("TimeCtrl", function($scope, $interval) { 
 
    $scope.seconds = new Date().getSeconds(); 
 
    $scope.nowSeconds = $scope.seconds; //this one is just for presentation 
 

 
    $interval(function() { 
 
    this.seconds = new Date().getSeconds(); //you can put here day 
 
    }.bind($scope), 5000); 
 

 
    $scope.$watch('seconds', function(oldV, newV) { 
 
    if(oldV !== newV) 
 
     $scope.nowSeconds = newV; //you can put your reaction here - reload page 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="test" ng-controller="TimeCtrl"> 
 
    {{nowSeconds}} 
 
</div>

相關問題