Если вы имеете ввиду фильтр через пайп - он лишь меняет значение.
<span class="date" data-ng-bind="user.created_at | date:'medium'"></span>
<span class="date">{{ user.created_at | date:'medium' }}</span>
В данной ситуации будет создан
watcher, который обрабатывает выражение сервисом
$parse.
Будет изменяться лишь содержание контейнера, а сам он перерисовываться не будет.
Если речь идет о
ngRepeat, то он тоже не перерисовывает элементы, а лишь добавляет/удаляет изменения.
Но если вы замените объект, по которому ведется итерация - тогда будет перерисовка. Пример:
<ul>
<li data-my-directive data-ng-repeat="user in users"> ... </li>
</ul>
// Создаем коллекцию
// link-функция в myDirective вызовется для foo и bar
$scope.users = [{name: 'foo'}, {name: 'bar'}];
// Добавит объект, перерисовки не будет
// link-функция в myDirective вызовется только для baz
$scope.users.push({name: 'baz'});
// Удалим первый элемент - тоже не перерисует
// Вызывается event $destroy в scope элемента
$scope.users.splice(0, 1);
// А вот теперь коллекция изменилась
// Вызывается event $destroy для foo bar baz
// Все перерисуется, link-функция в myDirective вызовется для alice и bob
$scope.users = [{name: 'alice'}, {name: 'bob'}];
// UPD
Если речь идет о
ngRepeat с фильтром - будет перерисовка лишь тех объектов, которые удалились и потом добавились.