【发布时间】:2012-12-23 14:37:45
【问题描述】:
我正在尝试 angularjs 文档中给出的代码(此处给出:http://jsfiddle.net/zGqB8/) 它只是实现了一个时间工厂,并使用 $timeout 在每一秒之后更新时间对象。
angular.module('timeApp', [])
.factory('time', function($timeout) {
var time = {};
(function tick () {
time.now = new Date().toString();
$timeout(tick, 1000); // how to do it using setInterval() ?
})();
return time;
});
我将如何使用 setInterval() 函数而不是 $timeout() 来做到这一点?
我知道需要使用scope.$apply() 来进入角度执行上下文,但是在工厂函数中这将如何工作?我的意思是,在控制器中,我们有一个作用域,但我们在工厂函数中没有作用域?
【问题讨论】:
-
为什么需要使用setInterval?这达到了相同的结果。
-
我喜欢你目前的解决方案。
-
@LiviuT。是的,它在这里工作,但我只是想知道在工厂函数中如何进入角度执行上下文。
-
Angular 现在有 $interval: docs.angularjs.org/api/ng/service/$interval
标签: javascript angularjs javascript-framework