Angular2 - Как обмениваться данными / изменениями между компонентами

Допустим, у вас есть интерфейс с панелью инструментов, боковой панелью и сеткой. На панели инструментов есть раскрывающийся список, в котором при изменении пользователя изменяется содержимое боковой панели и сетки. Вернувшись в Angular 1, я бы использовал Сервис, чтобы получить все свои динамические данные. Когда что-то меняется в службе, все компоненты, которые используют эту службу, также будут обновляться.

В Angular 2 похоже, что люди используют разные методы. Я хотел получить ваш вклад, который является предпочтительным способом.

Статическая службаOnChangesВходы и выходы

обновленный - 09.09.16

Похоже, лучшим решением является тема, которую опубликовал Тьерри Темплиер:Делегирование: EventEmitter или Observable в Angular2.

У меня остается вопрос: лучше ли создавать новую службу для каждого элемента данных, который используется совместно компонентами, или же у нас может быть только одна служба, в которой есть объект, в котором хранятся все общие данные?

See Plnkr for code

Оригинальный плункер - Каждое изменение будет иметь свой сервис

Пересмотренный Plunker например - Только один сервис, который хранит все данные в объекте. Тип будет передан каждому слушателю, чтобы проверить, нужно ли ему что-либо делать на основе этого типа.

Ответы на вопрос(2)

Ваш ответ на вопрос