我正在使用$timeout服务,我想知道为什么我的'mainCtrl.date。Raw变量不会每秒钟更新一次。什么好主意吗?
angular.module('MyApp', [])
.controller('MainCtrl', ['$timeout',function($timeout){
var mainCtrl = this;
mainCtrl.date = {};
$timeout(function(){
mainCtrl.date.raw = new Date();
}, 1000);
}]);
使用$interval
代替,因为$timeout
将在计时器完成时触发函数一次,$interval
将在计数器完成时触发函数,并且它将再次与计数器一起启动,直到您清除它。
angular.module('MyApp', [])
.controller('MainCtrl', ['$interval',function($interval){
var mainCtrl = this;
mainCtrl.date = {};
$interval(function(){
mainCtrl.date.raw = new Date();
}, 1000);
}]);
$timeout
将在计时器到达结束后仅触发一次。如果你想每n毫秒运行一个函数,使用$interval
var app = angular.module('App', [])
app.controller('Ctrl', function($scope, $interval){
$scope.date = {};
$interval(function(){
$scope.date.raw = new Date();
}, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="App" ng-controller="Ctrl">
{{date.raw | date:'yyyy-MM-dd HH:mm:ss'}}
</body>