Я искал аналогичные вопросы в SO, и я не нашел адреса, который касается моего конкретного случая. Существует много методов обмена данными между угловыми компонентами, и я прочитал эту статью о связи компонентов: https://angular.io/docs/ts/latest/cookbook/component-communication.htmlУгловой 2: обмен данными по различным маршрутам
Однако ни одна из описанных здесь методик не работает, потому что мои компоненты находятся на разных маршрутах. В статье описывается связь между родительским и дочерним компонентами, и некоторые случаи могут работать для компонентов-близнецов, если они одновременно загружаются.
Мой случай очень похож на урок Angular 2 Heroes: у меня есть маршрут, который отображает таблицу со списком клиентов (вместо героев). Когда пользователь нажимает на конкретного клиента, я запускаю изменение маршрута, чтобы отобразить форму с данными для выбранного клиента (вместо героя).
Учебник heroes выполняет вызов службы для извлечения выбранных данных героя, но я хочу избежать бесполезного дополнительного вызова AJAX, учитывая, что эти данные уже находятся в памяти. Я просто хочу передать выбранные данные клиента компоненту формы клиента, чтобы он сразу отображался.
Я думаю о службе «глобальной сессии», где я мог бы хранить и извлекать любой объект, который я хочу, но я не уверен, что это хорошая идея. Существуют ли еще более адекватные подходы?
Это похоже на мою услугу «Глобальная сессия». Как выглядит API «yourDataService»? Что-то вроде setCustomer()/getCustomer()? –
@ Luis Crespo да точно, это самый простой и лучший подход, я думаю – neuronet
Спасибо. Поскольку это в значительной степени то, о чем я думал, я подожду еще немного, чтобы посмотреть, появляется ли кто-нибудь альтернативный подход. Мне кажется странным, что мне необходимо разработать такой сервис на уровне приложения для такого общего сценария. Возможно, Angular 2 уже предлагает более простой механизм. –