javascript - 我可以以 60fps 运行 Angular 的摘要循环来显示快速计时器吗?

标签 javascript angularjs

我有一个计时器要显示在我的网站上,我希望该值位于我的 Angular Controller 中。目前我使用这段代码:

var interval=1.0 / 60.0;
var score_div = $("#score_div");
setInterval(function(){
    score += interval;
    score_div.text(score);
}, interval * 1000);

Angular 可以处理 60FPS 的消化吗?我还能如何让计时器更新得足够频繁?这是一个非常简单的变量,使用 jQuery 或其他东西我可以在该 Interval 函数期间自己更新 DOM。

是否有一种“有 Angular ”的方式来实现这一点?

最佳答案

如果没有必要,不要使用 Angular 进行 DOM 操作,将其留给 Angular 并只更新模型。您可以创建一个 Controller /指令并使用 $interval服务,以便 Angular 了解范围变量 score 的更改。示例:

app.controller('MainCtrl', ['$scope', '$interval', function($scope, $interval) {
  var interval=1.0 / 60.0;
  $scope.score = 0;
  $interval(function(){
      $scope.score += interval;
  }, interval * 1000);
}]);

你的标记将是

  <body ng-controller="MainCtrl">
    <!-- You don't actually need an ID here for it to work -->
    <div id="#score_div">{{score}}</div>
  </body>

参见plunker

关于javascript - 我可以以 60fps 运行 Angular 的摘要循环来显示快速计时器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31821671/

相关文章:

css - animate + ng-repeat 优雅的解决方案?

javascript - 使用 jquery 将表单数据保存到本地 json 文件中

javascript - 在一个表单字段中获取多个用户输入

javascript - 在循环内的 AngularJs 中创建动态范围变量

javascript - jquery 客户端在关联多维数组上分页

javascript - 如何在 Controller 之间传输数据

angularjs - 如何构建我的 angularjs 应用程序和测试文件夹

javascript - angular-bootstrap Accordion 数据绑定(bind)问题

javascript - 为什么我从 json 获取数据时遇到未定义的情况?

javascript - 在返回的map()对象中设置图像