в моем приложении AngularJS. Я должен постоянно проверять серверный сервер для новых записей, а затем обновлять текущие данные, хранящиеся в приложении на клиентской стороне.Контроллеры обновления директивы для фоновых задач AngularJS
Так, например, у меня есть контроллер MyController
, который содержит массив orders
, содержащий Order
объектов. Когда новый Order
выполнен поверх API REST на сервере с другого клиента, я хочу получить обновление в своем приложении. Итак, я написал directive
orderRefresher
, который применяется к <body>
и запускает $interval
, который выбирает все заказы каждые 120 секунд. При получении новых Orders
они транслируются с $rootScope
.
В MyController
существует прослушиватель, который обновляет заказы при трансляции соответствующего события.
Проблема заключается в том, что слушатель установлен на $scope
и не уничтожается при уничтожении контроллера, что вызывает ошибки при попытке установить свойство orders
(не существует).
Я думал о том, чтобы просто обернуть его внутри try-catch
, но тогда мне придется подождать, пока $interval
будет снова запущен, чтобы получать обновления при восстановлении контроллера.
Так как я могу решить эту проблему? Есть ли лучшее решение, чем мое?