2017-06-29 51 views
0

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

该指令并不是绝对不过是改变HTML元素的滚动位置。

我应该使用本机浏览器setTimeout$timeout函数。我觉得使用$timeout是不必要的,因为这会触发摘要循环(如上所述,这是不必要的)。

所以我的问题真的归结为:这是一个好主意,是否有类似或其他情况下,使用原生setTimeout功能$timeout函数是有保证的。

+0

这是指这是指angularjs或角度2+? – crash

+0

Angular 1.4(上面提到,将更新标题) – Don

+0

只是FYI,角色团队更改名称从angularjs到版本2的角度。为避免混淆说到子版本2,您应该使用angularjs。 – ste2425

回答

2

AngularJs已经解决了这个问题。 $timeout$interval都接受一个可选参数,这将允许您跳过脏检查:默认设置为true的invokeApply

$timeout(someFunction, 1000, false)将跳过$digest。你应该总是使用$timeout超过setTimeout$timeout是一个围绕setTimeout的包装,它能够通过$exceptionHandler处理异常。

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

+0

啊,是的,正确的,异常处理,我记得。谢谢 – Don