AngularJS (CoffeeScript): $interval 只运行一次
AngularJS (CoffeeScript): $interval only runs once
我目前正在尝试使用 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,但延迟似乎无法正常工作(即 "tick" 输出到控制台,中间有任何延迟)。
感谢您的宝贵时间!
$interval tick 500
将转译为:$interval(tick(500));
您需要的是:$interval tick, 500
这将变成:$interval(tick, 500);
我目前正在尝试使用 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,但延迟似乎无法正常工作(即 "tick" 输出到控制台,中间有任何延迟)。
感谢您的宝贵时间!
$interval tick 500
将转译为:$interval(tick(500));
您需要的是:$interval tick, 500
这将变成:$interval(tick, 500);