Вы можете использовать пользовательский фильтр для этого, пользовательский фильтр будет выполняться всякий раз, когда есть изменение.
Например, вы можете изменять свойство done внутри вашего объекта todo каждый раз, когда пользователь нажимает на строку, и использовать значение todo.done для установки класса внутри вашего фильтра
HTML
<li ng-repeat="todo in todos | filter:handleChange"
class="bigfont todo done-{{todo.done}} {{todo.class}}"
ng-click="todo.done = !todo.done">
<span>{{todo.text}}</span>{{todo.class}}
</li>
JS
$scope.handleChange = function(row){
if(!row.done){
row.class = '';
}
else{
row.class = 'changed'
}
return true;
}
это должно дать вам общее представление о том, как подойти к вашей проблеме, рабочий образец можно найти в следующем плунжере.
Демо