2016-12-21 5 views
2

このエラーを調査した結果、このコードから来ていることがわかりましたが、それを修正する理由と方法はわかりません。

$scope.mindate = function() { 
    var thisDay = new Date(); 
    var priorDate = new Date().setDate(thisDay.getDate() - 90); 
    return new Date(priorDate); 
}; 
+1

このエラーが表示され、これは一般的に起こる1つの変更は、同じ変更をトリガしたときに何回も何回も。あなたは問題になるためにコードとマークアップを追加する必要があります – gaurav5430

答えて

0

は、あなたはそれをキャッシュすることができます:ダイジェストサイクルを再帰的に実行されたときに

$scope.mindate = function() { 
    if(!$scope.mindateCached){ 
     var thisDay = new Date(); 
     var priorDate = new Date().setDate(thisDay.getDate() - 90); 
     $scope.mindateCached = new Date(priorDate); 
    } 
    return $scope.mindateCached; 
}; 
0

角ダーティチェック反復は最大10です。コードがダーティチェックを完了する前に頻繁に変更された場合、エラーがスローされます。 PS:完全なコードを投稿してください。

0

あなたは常に「新しい日付()」を返しているからです。

モデルに値を与えると、angleは変更を検出し、ダイジェストサイクルをトリガしてすべての変更を適用します。最初のダイジェストサイクルが完了すると、何かが変更されたかどうかを確認するためにすべてを再度調べます。変更されていなければ、次の変更を停止して待機します。はいの場合、別のダイジェストサイクルを経ます。

あなたの場合、新しいDate()オブジェクトを常に返すので、角度は常に1サイクルごとに変更され、10サイクル後にはハード・ストップが発生します。「Ye、let's not」無限ループに陥る」あなたは今あなたが得ているエラーを取得します。

+0

あなたの答えは何ですか、あなたは何を提案しますか? – divo

+0

$ scope.mindateを設定する別の関数を作成し、その関数を変更したい場合にのみ関数を呼び出します。初期値を設定するだけの場合は、コントローラの開始時に関数を呼び出してください。 –

関連する問題