我想在用户的系统日期发生变化时刷新页面内容。 用户在中午3-11-11(11月3日)访问该页面,当系统日期更改为04-11-2014(11月4日)时,应刷新内容或调用函数。
我们可以使用$interval(checksysDate(),5000)
其中checksysDate()
将检查日期是否以5000
的间隔更改。但是,我想知道我们是否可以在系统日期使用$scope.$watch
(仅限日期,即11月3日或4日,而不是时间)。
任何优雅的解决方案??
谢谢,
答案 0 :(得分:1)
你可以做这样的事情,但它还不错......
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>
&#13;