9

Angular で Metro タイル タイプのグリッドを作成しようとしています。これを実現するには、各タイルを異なる色にしたいと考えています。したがって、私の行動計画は、ループ内でランダムに色を選択する関数を作成することでした ( を使用ng-repeat)。これが私がこれまでに持っているものです....

<div class={{RandomColourClass()}} ng-repeat="stockRecord in GridStockRecords | filter:searchText">
  <div  >
    <h6>{{stockRecord.ProductGroupName}}</h6>
  </div>
</div>

ご覧のとおり、RandomColourClass という関数でクラス名を設定しています。これが JS ビットです。

$scope.TileColours = [{colour:'thumbnail tile tile-blue'},{colour:'thumbnail tile tile-green'},{colour:'thumbnail tile tile-red'}];

$scope.RandomColourClass = function(){
  var randomColour = $scope.TileColours[Math.floor(Math.random() * $scope.TileColours.length)];
  return randomColour.colour.toString();
};

これはすべて正常に機能し、タイルの色は異なりますが、次のエラーが発生し続けます

エラー: 10 回の $digest() 反復に達しました。中止します!」。

この問題に関する他の投稿を見てきましたが、機能させるために何を変更する必要があるのか​​ わかりません!? どんな助けや指示も大歓迎です:)

4

4 に答える 4

5

IE10 で同じ問題が発生し、window.location を使用してリダイレクトしていたことが問題でした。

window.location = "#route/yada";

コードを次のように変更しました

$location.path("/route/yada);

そして、それは私の問題を解決しました。=D

于 2014-01-12T20:25:03.660 に答える
1

この特定の質問とは関係のない回答ですが、エラー メッセージを検索すると Google のフロント ページに表示され、理解するまで少し時間がかかったので、ここに追加します。

私の見解では、次のようなものがありました。

<custom-tag data="[1,2,3]"/>

そして、カスタムタグのコントローラーにはウォッチャーが設定されていました$scope.data。これにより、AngularJS が値を再チェックするたびにdataビューから新しいオブジェクトを取得したため (配列はオブジェクトであることを思い出してください)、AngularJS はそれを適切に消化することができませんでした。

于 2013-12-05T13:27:15.447 に答える
0

ng-click="submit()" ではなく ng-class="submit()" とタイプミスしたときに、このエラーが発生しました。他の誰かがそのようなばかげたエラーを犯すとは想像できませんが、記録として、これは 10 回の $digest() 反復を作成する別の方法であり、中止に達しました!

于 2015-09-23T18:31:39.510 に答える