2017-02-19 5 views
0

遅延付きangularJSにループを書きました。私はそれを連続して実行したいと思います。ここで私は、次のコードを含むwhileループを試してみましたが、原因無限の時間を実行することは私にエラーを与えたが、私の主な目的は、私はこれはかなり強力だと思うangularjsループをエラーなしで連続的に実行する方法

angular.forEach($scope.articles, function (art) { 
    promise = promise.then(function() { 
    return $timeout(5000); 
    }); 
}) 
+1

何を達成したいですか?手元にある仕事を説明できますか? –

+0

私は基本的に掲示板のためのUIを開発しています。通知を表示するには、遅延を伴う1つの部門に通知を表示しなければなりません。 foreachループが終了したら、それを継続的に実行する方法が残っています。 –

+0

は、なぜあなたは(2000年{;私は<10; iが++){ はconsole.log(I) } (VAR I = 0のため }関数())のsetInterval(このようなもの) 'のsetIntervalを使用していけません。 'あなたが角度で具体的に働いているなら、$ intervalを使うことができます –

答えて

-2

(無限ループのように)連続して次のコードを実行することです反パターン。 $on$watchなどのように、リスナーを調べる方が良いでしょう。

または必要がある場合は、に入れてください。

+0

何を聞く?より多くの文脈がなければ答えは本当にあまり意味がありません – charlietfl

+0

あなたは – irbanana

1

あなたは$timeoutを使用する必要はありません、あなたのケースであなたはあなたが双方向のデータバインディングに問題がある可能性があるため、$interval代わりsetInterval()を使用する必要がangularJSで$interval

$interval(function(){ 
    for(var i=0; i < 5;i++){ 
     console.log("I am a Bear"); 
    } 
}, 5000); 

を必要としています。
$間隔を壊すことも実用的です。

FULL例:

angular.module('myApp',[]) 
     .controller('myCtrl', myCtrl); 

myCtrl.$inject = ['$scope', '$interval']; 
function myCtrl($scope, $interval) { 
    var myInterval = $interval(function(){ 
     for(var i=0; i < 5;i++){ 
     console.log("I am a Bear"); 
     } 
    }, 5000); 

    $scope.$on('$destroy', function() { 
     $interval.cancel(myInterval); 
    }); 
} 

チェック角度$interval docs

関連する問題