AngularJS(CoffeeScript):$ interval只运行一次

时间:2015-01-15 04:59:54

标签: javascript angularjs coffeescript timeout

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

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,但延迟似乎没有正常工作(即“滴答”输出到控制台,中间有任何延迟)。

谢谢你的时间!

1 个答案:

答案 0 :(得分:4)

$interval tick 500会反编译为:$interval(tick(500));

您需要的是:$interval tick, 500

将成为:$interval(tick, 500);