在Angular 1.4

时间:2017-06-29 13:20:10

标签: angularjs settimeout angular-digest

我实现了一个hack,以便使用Angular 1.4指令滚动元素的内容。但是,更改元素滚动位置的代码需要在单击相同元素x秒后完成。

这个指令绝对不会改变HTML元素的滚动位置。

我应该使用原生浏览器setTimeout还是$timeout功能。我觉得使用$timeout是不必要的,因为这将触发摘要周期(如上所述,这是不必要的)。

所以我的问题可以归结为:这是一个好主意,是否存在类似或其他情况,其中保证使用原生setTimeout超过$timeout函数。

1 个答案:

答案 0 :(得分:2)

AngularJs已经解释了这一点。 $timeout$interval都接受一个可选参数,允许您跳过脏检查:invokeApply默认情况下设置为true。

$timeout(someFunction, 1000, false)将跳过$digest。您应始终使用$timeout而不是setTimeout$timeoutsetTimeout的包装器,可以通过$exceptionHandler处理异常。

https://docs.angularjs.org/api/ng/service/$timeout/