我在Angular服务中有$ interval,检查数组是否为空,并在数组的每个数据上运行一个脚本。这很简单。我的问题是,每次$ interval运行时,我的范围都会被刷新,一些指令会“再次运行”。如果我使用javascript setInterval函数而不是$ interval,结果就是我所期望的。但我想使用$ interval因为我不知道如何在运行karma测试时模拟对setInteval的调用。 关于如何使用$ interval来满足这种需求的任何想法?
答案 0 :(得分:1)
如果没有看到您的代码,很难确定,但我相信您可以在调用invokeApply
时将第4个参数(false
)设置为$interval
。这应该可以阻止对$scope.$apply()
的幕后调用,我认为这是在这里发生的事情。
有关详细信息,请参阅$interval documentation。