У меня есть ng-repeat
в списке объектов, где каждый объект имеет 5 свойств.
Первые четыре свойства - это число и фактические значения, отображаемые в таблице, что-то вроде:
<tr ng-repeat="object in objects">
<td ng-style="{ 'color': 'object.colors['color1']'}"
ng-mouseenter="changeColor(object ,'color1',true)"
ng-mouseleave="changeColor(object ,'color1',false)" >
{{object .property1}}
</td>
--other three <td> below for properties 2 3 4 in the same way.
Моя цель - изменить цвет при наведении курсора мыши для конкретной ячейки на основе пятого свойства объекта, которое выглядит как группа пар {colorname - colorcode}
Пример:
Object1.property5= [{'color1'='red'},{'color2' = 'green'}
и т.д ..
Функция changeColor
принимает три параметра:
- объект, с которым нужно работать
- название цвета
логическое значение, просто восстанавливающее цвет, когда мышь отводится от клетки.
function changeColor( object, colorLabel, isOver ) {
if (isOver) {
object.property5[colorLabel] = '#00afec';
} else {
object.property5[colorLabel] = 'black';
}
}
Теперь, если мы посмотрим на пример в начале,перемещение мыши над объектами вызывает changeColor
для этого объекта.Он корректно изменяет значение свойства color1
на #00afec
, но выглядит так, как будто отсутствует какая-либо привязка, а ng-style
не обнаруживает это изменение во вложенном свойстве.
Как это исправить?У меня также есть ощущение, что это не оптимальное решение, поэтому любые другие предложения приветствуются.