没有范围刷新的Angular $ interval

时间:2014-11-04 14:13:22

标签: javascript angularjs angularjs-directive setinterval karma-runner

我在Angular服务中有$ interval,检查数组是否为空,并在数组的每个数据上运行一个脚本。这很简单。我的问题是,每次$ interval运行时,我的范围都会被刷新,一些指令会“再次运行”。如果我使用javascript setInterval函数而不是$ interval,结果就是我所期望的。但我想使用$ interval因为我不知道如何在运行karma测试时模拟对setInteval的调用。 关于如何使用$ interval来满足这种需求的任何想法?

1 个答案:

答案 0 :(得分:1)

如果没有看到您的代码,很难确定,但我相信您可以在调用invokeApply时将第4个参数(false)设置为$interval。这应该可以阻止对$scope.$apply()的幕后调用,我认为这是在这里发生的事情。

有关详细信息,请参阅$interval documentation