Angularjs 为数字设置动画的最佳方式(性能方面)是什么?

Angularjs 为数字设置动画的最佳方式(性能方面)是什么?,angularjs,animation,angularjs-directive,Angularjs,Animation,Angularjs Directive,在angular.js应用程序中,我使用以下指令: https://github.com/sparkalow/angular-count-to 在网上很有用 当我为phonegap编译它时,它真的很慢 但是,还有什么其他方法可以在两秒内将数字从0设置为200(例如),而不影响我的应用程序的性能呢?该指令使用$timeout,这是在Angular中获得设置超时功能的建议方法。它这样做可能出于以下原因之一,尽管还有其他原因: 易于为测试注入模拟 假设每个步骤都应允许其他组件进行更新 这是“有角度的

在angular.js应用程序中,我使用以下指令:

https://github.com/sparkalow/angular-count-to
在网上很有用

当我为phonegap编译它时,它真的很慢


但是,还有什么其他方法可以在两秒内将数字从0设置为200(例如),而不影响我的应用程序的性能呢?

该指令使用
$timeout
,这是在Angular中获得
设置超时
功能的建议方法。它这样做可能出于以下原因之一,尽管还有其他原因:

  • 易于为测试注入模拟
  • 假设每个步骤都应允许其他组件进行更新
  • 这是“有角度的方式”
  • 我不认为#2实际上是一个大问题,因为它不会公开值或更新作用域上的任何内容,并且会进行标准的HTML
    textContent
    操作

    无论如何,
    $timeout
    执行
    setTimeout
    以及
    $digest
    (允许Angular更新其他组件)。额外的摘要周期可能是缓慢的部分,每个Angular开发人员都应该仔细阅读它们,因为它们是Angular设计的核心(提示:)。同样地,使用原始库,将
    $timeout
    替换为
    setTimeout
    调用(以及在
    if(step>=steps)
    块中完成时的手动摘要触发器),应该可以加快它的速度


    尽管-
    $timeout
    通常是正确的方法,但要小心这些更改。

    我会使用指令,避免任何导致摘要的方法,直接更新元素,而不是依赖摘要周期来更新计数器。您链接到的插件似乎每30毫秒产生一个摘要周期。奥多,你知道有什么指令不能像疯了一样消化吗?没有。但是,建造一个也不难。(我不会)