Есть приложение, которое позволяет пользователям создавать или присоединяться к комнатам. Таким образом, есть RoomsListController
, который отображает номера, RoomDetailsController
, который показывает содержимое и элементы управления для деятельности внутри определенного помещения. И причины, RoomService
, которая обеспечивает метод getRooms()
(async).Два контроллера в зависимости от одних и тех же данных возвращаются асинхронно
Теперь, каким будет Угловой способ заставить два контроллера ждать тех же данных, возвращаемых RoomService.getRooms()
?
Детали:
- Существует аутентификации в приложение и список номеров зависит от USERID. Поэтому вызов
RoomService.getRooms()
при запуске приложения не является опцией RoomDetailsController
не всегда запрашивает список номеров. Всякий раз, когда комната, предоставляемая через$stateParams
, существует и активна, она просто отображается. Если нет, существует некоторая логика, которая направляет пользователя в другую комнату (здесь требуется список комнат) или отображает сообщение о том, что номера не доступны, и, возможно, пришло время его создать.- Предположим, что
getRooms()
- это тяжелая операция для сервера, и не желательно получать его дважды, когда одни и те же данные на клиенте могут быть повторно использованы. - Это желательно иметь логику, которая не зависит тот, который функция управления выполняется первый, так как это может повлиять на обновление макета в шаблоне
может использовать решительность в родительском состоянии маршрутизации, чтобы сделать запрос и сохранять результаты в службе. Контроллеры не срабатывают до тех пор, пока не будут решены. – charlietfl