【问题标题】:AngularJS (CoffeeScript): $interval only runs onceAngularJS(CoffeeScript):$interval 只运行一次
【发布时间】:2015-01-15 04:59:53
【问题描述】:

我目前正在尝试使用 AngularJS 附带的 $interval 函数定期重复一个函数。下面是一段代码sn -p:

angular.module('tetris-controller', ['tetris-model'])
.controller('tetrisCtrl', [
  '$rootScope', '$scope', '$interval', '$timeout', ...,
  ($rootScope, $scope, $interval, $timeout, ...) ->

    ...

    tick = ->
      console.log("tick")
      $rootScope.count++
      $scope.game.block.down()
      $rootScope.tetris_game = $scope.game.grid.drawText()

    tick()
    $interval tick 500

    ...

])

运行此代码时,只有两个“tick”输出到控制台。我也尝试过使用 $timeout,但延迟似乎无法正常工作(即“滴答”输出到控制台,中间有任何延迟)。

感谢您的宝贵时间!

【问题讨论】:

    标签: javascript angularjs coffeescript timeout


    【解决方案1】:

    $interval tick 500 将转编译为:$interval(tick(500));

    你需要的是:$interval tick, 500

    将会变成:$interval(tick, 500);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 2017-10-17
      • 2013-11-13
      • 2017-01-24
      相关资源
      最近更新 更多