在 Angular 1.4 中使用超时而不是 $timeout
Using timeout instead of $timeout in Angular 1.4
我正在实施一个 hack,以便使用 Angular 1.4 指令滚动元素的内容。但是,更改元素滚动位置的代码需要在单击同一元素 x 秒后完成。
这个指令除了改变 HTML 元素的滚动位置外,什么都没有。
我应该使用本机浏览器 setTimeout
还是 $timeout
功能。我觉得使用 $timeout
是不必要的,因为这会触发摘要循环(如前所述,这是不必要的)。
所以我的问题真正归结为:这是一个好主意吗?是否存在类似或其他场景,可以保证在 $timeout
函数上使用本机 setTimeout
。
AngularJs 已经说明了这一点。 $timeout
和 $interval
都接受一个可选参数,它允许您跳过脏检查:invokeApply
默认设置为 true。
$timeout(someFunction, 1000, false)
将跳过 $digest
。你应该总是使用$timeout
而不是setTimeout
。 $timeout
是 setTimeout
的包装器,能够通过 $exceptionHandler
.
处理异常
我正在实施一个 hack,以便使用 Angular 1.4 指令滚动元素的内容。但是,更改元素滚动位置的代码需要在单击同一元素 x 秒后完成。
这个指令除了改变 HTML 元素的滚动位置外,什么都没有。
我应该使用本机浏览器 setTimeout
还是 $timeout
功能。我觉得使用 $timeout
是不必要的,因为这会触发摘要循环(如前所述,这是不必要的)。
所以我的问题真正归结为:这是一个好主意吗?是否存在类似或其他场景,可以保证在 $timeout
函数上使用本机 setTimeout
。
AngularJs 已经说明了这一点。 $timeout
和 $interval
都接受一个可选参数,它允许您跳过脏检查:invokeApply
默认设置为 true。
$timeout(someFunction, 1000, false)
将跳过 $digest
。你应该总是使用$timeout
而不是setTimeout
。 $timeout
是 setTimeout
的包装器,能够通过 $exceptionHandler
.