Скажем, у меня есть ng-repeat с большим массивом.
Когда ng-repeat запускается, он добавляет каждый элемент этого массива в изолированную область, а также имеет сам массив в области. Это означает, что $digest проверяет весь массив на изменения, и, кроме того, он проверяет каждый отдельный элемент в этом массиве для изменений.
Смотрите этот плункер в качестве примера того, о чем я говорю.
В моем случае использования я никогда не меняю ни одного элемента моего массива, поэтому мне не нужно их просматривать. Я только когда-либо изменю весь массив, и в этом случае ng-repeat будет повторно отображать таблицу целиком. (Если я ошибаюсь, сообщите мне.)
В массиве (скажем) 1000 строк, это еще 1000 выражений, которые мне не нужны.
Как я могу отменить регистрацию каждого элемента из наблюдателя при просмотре основного массива?
Возможно, вместо того, чтобы отменять регистрацию, я мог бы больше контролировать мой $digest и каким-то образом пропускать каждую отдельную строку?
Этот конкретный случай на самом деле является примером более общей проблемы. Я знаю, что $watch возвращает функцию "deregisteration" , но это не помогает, когда директива регистрирует часы, что в большинстве случаев.