Я пишу компонент, который берет строку и преобразует ее в список <span>
. Каждому <span>
присваивается символ String и назначается случайный цвет.
Вызов компонента выглядит так:
<span ng-repeat="char in ctrl.chars" style="color: {{ctrl.randomColor}};">
{{char}}
</span>
И определение компонента выглядит так:
import 'package:angular/angular.dart';
import 'dart:math';
@NgComponent(
selector: 'tokens',
templateUrl: './component.html',
cssUrl: './component.css',
publishAs: 'ctrl',
map: const {
'text' : '@text',
}
)
class TokensComponent {
String text;
List<String> get chars => text.split('');
String get randomColor {
var colors = ['red', 'green', 'yellow', 'blue'];
return colors[new Random().nextInt(colors.length)];
}
}
Это работает, но выдает ошибку:
5 $digest() iterations reached. Aborting!
Watchers fired in the last 3 iterations:
...
Мне не ясно, что именно здесь наблюдают, кроме геттера, которого я определяю. Если я оставлю код, включающий Random
в геттере, а просто верну жестко закодированную строку, сообщение об ошибке исчезнет.
Есть идеи, что здесь не так?