Как я могу делиться данными между компонентами в Angular 2?

В Angular 1.x.x вы просто запрашиваете один и тот же сервис и получаете один и тот же экземпляр, что позволяет обмениваться данными в сервисе.

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

Что я делаю неправильно? Это неправильный шаблон (использование службы для обмена данными) или мне нужно пометить службу как одноэлементную (в одном экземпляре приложения) или что-то в этом роде?

Я на2.0.0-alpha.27/ кстати

Я ввожу сервис черезappInjector (редактировать: сейчасproviders) в@Component аннотации, а затем сохранить ссылку в конструкторе. Он работает локально в компоненте - только не между компонентами (они не разделяют один и тот же экземпляр службы), как я и думал.

ОБНОВИТЬ: Начиная с Angular 2.0.0, у нас теперь есть @ngModule, где вы определяете сервис подproviders собственность на сказал@ngModule, Это обеспечит передачу одного и того же экземпляра этой службы каждому компоненту, службе и т. Д. В этом модуле.https://angular.io/docs/ts/latest/guide/ngmodule.html#providers

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

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