我正在尝试 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()
进入角度执行上下文,但它在工厂函数中如何工作?我的意思是,在控制器中,我们有一个作用域,但在工厂函数中没有作用域?
您可以使用$timeout
作为间隔。
var myIntervalFunction = function() {
cancelRefresh = $timeout(function myFunction() {
// do something
cancelRefresh = $timeout(myIntervalFunction, 60000);
},60000);
};
如果视图被破坏,您可以通过监听来破坏它$destroy
:
$scope.$on('$destroy', function(e) {
$timeout.cancel(cancelRefresh);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)