Angularjs 在我的应用程序中使用$timeout
我正在使用$timeout服务,我想知道为什么我的'mainCtrl.date.raw'变量不会每秒更新。有什么想法吗Angularjs 在我的应用程序中使用$timeout,angularjs,timeout,Angularjs,Timeout,我正在使用$timeout服务,我想知道为什么我的'mainCtrl.date.raw'变量不会每秒更新。有什么想法吗 angular.module('MyApp', []) .controller('MainCtrl', ['$timeout',function($timeout){ var mainCtrl = this; mainCtrl.date = {}; $timeout(function(){ mainCtrl.date.raw = new
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=角度。模块'app',[]
应用程序控制器'Ctrl',函数$scope,$interval{
$scope.date={};
$intervalfunction{
$scope.date.raw=新日期;
}, 1000;
};
{{date.raw}日期:'yyyy-MM-dd HH:MM:ss'}
$timeout只触发一次。由于循环运行由$interval提供,因此需要循环函数$超时仅用于延迟运行。抱歉,我没有思考。