Как я могу делиться данными между компонентами в 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