0

Проблема. У меня есть таблица записей ($scope.entries), каждая строка (ng-repeat) с 5 столбцами, 2 из этих столбцов имеют собственный фильтр для различных преобразований.Фильтры и функции Angular.js по объему, который меняется каждую секунду

Теперь у меня есть active_entry ($scope.active_entry), который меняется каждые секунды, из-за этого и как работает угловой (я думаю), вся область постоянно проверяется и мои фильтры выполняются.

Это вызывает Часы Выражения в Батаранге, чтобы неба высоко высока над временем.

Как я могу использовать создание своего рода изолированной области действия для active_entry, чтобы мои фильтры не разваливались снова и снова каждую секунду?

Сделать директиву единственным способом создания изолированного пространства? Будет ли это работать? Что делать, если мне нужны значения из изолированной области позже в контроллере?

ответ

0

Вы задаете довольно много вопросов в своем вопросе. Было бы лучше спросить их каждый по разным SO-вопросам.

В любое время работает Angular digest cycle, все часы и фильтры будут работать. Изменение вещей «внутри» Angualar вызовет цикл дайджестов. Как вы меняете $scope.active_entry? Если вы можете изменить его за пределами Angular, вы можете сделать то, что хотите. Как вы упомянули, вам также нужно будет поместить это свойство в новый дочерний объект (scope: true) или выделить область (scope: {...}), тогда вы можете позвонить $scope.digest() (после изменения active_entry), чтобы переварить эту область.

Создание директивы было бы лучшим способом создания области изоляции. Вы можете создать дочернюю область с помощью ng-контроллера или директивы.

Смотрите также https://groups.google.com/d/topic/angular/1XtEAX93ces/discussion

+0

Это своего рода таймер, поэтому active_entry обновляется каждый второй с $ таймаут .. – foxx

+0

я не понимаю, я создал изолированную сферу http://plnkr.co/edit/8UqVXWFTdutIQ4sHDPAe? P = просмотр и фильтры в родительской области все еще выполняются каждую секунду (контрольная консоль). – foxx

+0

А я вижу, третий параметр в $ timeout и $ digest(). – foxx

Смежные вопросы