Я использую дуэт ng-repeat для создания таблицы матриц, но после обновления данных функция раскраски (простой возврат "зеленый", если аргумент выше 0) перестает работать.
Когда я загружаю первые (поддельные) данные, цвета работают очень хорошо, но после любых обновлений он перестает работать. При инициализации массива 2d он будет всегда загружаться и отображаться правильно. Я не нашел ошибок отладки или проблем с логикой.
Jfiddle UPDATE **: Я создал простую функцию, которая меняет несколько значений в "исходном" 2D-массиве, и я по-прежнему сталкиваюсь с проблемой, когда она не обновляет цвета. Я довольно уверен, что это проблема AngularJS (недостаток?), А не проблема с самими данными.
<!-- MATRIX TABLE -->
<div class="center w80" >
<div id = "MatrixTable2">
<table border="1">
<thead>
<tr>
<th></th> <!-- blank -->
<th ng-repeat="ppp in PlayerIDList">{{ppp.name}}</th>
</tr>
</thead>
<tbody>
<tr width="50px" ng-repeat="row in Matrix" >
<td class="rowlabel">{{PlayerIDList[$index].name}}</td>
<td width="50px" ng-repeat="col in row track by $index" ng-class="::funcGetColorByBool({{col}})">{{col}}</td>
</tr>
</tbody>
</table>
</div>
<!-- END MATRIX TABLE -->
Я считаю, что ваша проблема связана с классом, префикс ::
this означает, что это выражение оценивается только один раз.
"::funcGetColorByBool({{col}})"
Кроме того, вам нужно исправить ваше выражение, чтобы передать значение col:
из:
ng-class="::funcGetColorByBool({{col}})"
чтобы:
ng-class="funcGetColorByBool(col)"
Вот рабочий плункер.