在我的应用中使用$ timeout

时间:2015-10-27 15:39:05

标签: angularjs timeout

我正在使用$ timeout服务,我想知道为什么我的主菜单.date.raw'变量每秒都不会更新。有什么想法吗?

GET http://localhost:59845/oncologyPatientsController/GetData?id=1234567 404 (Not Found)
send @ jquery-1.10.2.min.js:23
x.extend.ajax @ jquery-1.10.2.min.js:23
(anonymous function) @ Create:157
x.event.dispatch @ jquery-1.10.2.min.js:22
v.handle @ jquery-1.10.2.min.js:22

2 个答案:

答案 0 :(得分:1)

使用$interval代替,因为$timeout将在计时器结束时触发一次该函数,$interval将在计数器完成时触发该函数,并且它将在计数器处再次启动,直到你清除它。

angular.module('MyApp', [])
.controller('MainCtrl', ['$interval',function($interval){
    var mainCtrl = this;
    mainCtrl.date = {};
    $interval(function(){
        mainCtrl.date.raw = new Date();   
    }, 1000);
}]);

答案 1 :(得分:1)

在计时器到达结束后,

$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>