在我的应用中使用$timeout



我正在使用$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>

相关内容

  • 没有找到相关文章