我遇到了这个奇怪的问题。出于一些奇怪的原因,我的setInterval
在没有$http.get()
的情况下无法工作。目前,$http
被设置为托管所述间隔的控制器的依赖项。但是,如果我摆脱它们(依赖和调用本身)setInterval
停止工作。我不知道如何解决这个问题。
这是控制器的代码
main.controller('timeCtrl', function($scope, $http, clockService) {
$scope.time = clockService.timeBase();
setInterval(function() {
$http.get();
$scope.time = clockService.timeBase();
}, 500);
});
删除依赖项后,它看起来像这样
main.controller('timeCtrl', function($scope, clockService) {
$scope.time = clockService.timeBase();
setInterval(function() {
$scope.time = clockService.timeBase();
}, 500);
});
但它不起作用。到底有什么不对?
答案 0 :(得分:2)
setInterval
是JS函数,它不会触发摘要周期,因此角度不会看到某些内容发生了变化。
尝试使用它的角度版本 - $interval
P.S。当一个承诺得到解决时,它会触发摘要周期,以便调用$ http来完成这项工作,但这显然不是你想要的方式