Angular - 延迟forEach

Kak*_*ken 1 foreach animation angularjs

我有个问题.我正在尝试创建一个动画,改变几个图层的颜色,画面之间有一个超时.

$scope.StartMovementsAnimation = function()
{
      angular.forEach($scope.GameMovements, function(movement){
       if (movement == "Green")
       {
          $scope.Green = true;
       }
       else (movement == "Orange")
       {
          $scope.Orange = true;
       } 
  });
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不知道如何停止或延迟流循环.我很丢失.我尝试使用$ timeout,睡眠等但不起作用.

有解决方案吗

谢谢

idu*_*sun 6

不要使用forEach.使用$ timeout重复GameMovements数组中的项目数.

看一下下面的例子.它会将className字段从橙色变为绿色,反之亦然,直到变量left的值达到0.

$scope.className = "orange";
$scope.count = 0;
$scope.startAnimation = function() {
  var left = 10
  var ticker = function() {
    if (left % 2 === 0)
      $scope.className = 'orange'
    else
      $scope.className = 'green'
    left -= 1
    if (left > 0) {
      $timeout(ticker, 1000)
    }
  }

  $timeout(ticker, 1000)
}
Run Code Online (Sandbox Code Playgroud)