为了使用Angular 1.4指令滚动元素的内容,我实现了一个hack。但是,更改元素滚动位置的代码需要在点击相同元素x秒后完成。
该指令并不是绝对不过是改变HTML元素的滚动位置。
我应该使用本机浏览器setTimeout
或$timeout
函数。我觉得使用$timeout
是不必要的,因为这会触发摘要循环(如上所述,这是不必要的)。
所以我的问题真的归结为:这是一个好主意,是否有类似或其他情况下,使用原生setTimeout
功能$timeout
函数是有保证的。
为了使用Angular 1.4指令滚动元素的内容,我实现了一个hack。但是,更改元素滚动位置的代码需要在点击相同元素x秒后完成。
该指令并不是绝对不过是改变HTML元素的滚动位置。
我应该使用本机浏览器setTimeout
或$timeout
函数。我觉得使用$timeout
是不必要的,因为这会触发摘要循环(如上所述,这是不必要的)。
所以我的问题真的归结为:这是一个好主意,是否有类似或其他情况下,使用原生setTimeout
功能$timeout
函数是有保证的。
AngularJs已经解决了这个问题。 $timeout
和$interval
都接受一个可选参数,这将允许您跳过脏检查:默认设置为true的invokeApply
。
$timeout(someFunction, 1000, false)
将跳过$digest
。你应该总是使用$timeout
超过setTimeout
。 $timeout
是一个围绕setTimeout
的包装,它能够通过$exceptionHandler
处理异常。
啊,是的,正确的,异常处理,我记得。谢谢 – Don
这是指这是指angularjs或角度2+? – crash
Angular 1.4(上面提到,将更新标题) – Don
只是FYI,角色团队更改名称从angularjs到版本2的角度。为避免混淆说到子版本2,您应该使用angularjs。 – ste2425