Como compartilhar dados entre componentes no Angular 2?
No Angular 1.x.x, você simplesmente solicita o mesmo serviço e acaba com a mesma instância, possibilitando o compartilhamento dos dados no serviço.
Agora no Angular 2 eu tenho um componente que tem uma referência ao meu serviço. Eu posso ler e modificar os dados no serviço, o que é bom. Quando tento injetar o mesmo serviço em outro componente, parece que recebo uma nova instância.
O que estou fazendo errado? É o próprio padrão que está errado (usando um serviço para compartilhar dados) ou preciso marcar o serviço como um singleton (dentro de uma instância do aplicativo) ou algo assim?
Estou dentro2.0.0-alpha.27/
btw
Eu injeto um serviço atravésappInjector
(editar: agoraproviders
) no@Component
anotação e salve uma referência no construtor. Ele funciona localmente no componente - apenas não entre componentes (eles não compartilham a mesma instância de serviço) como eu pensava.
ATUALIZAR: A partir do Angular 2.0.0, agora temos o @ngModule onde você definiria o serviço sob oproviders
propriedade em dito@ngModule
. Isso garantirá que a mesma instância desse serviço seja passada para cada componente, serviço etc. nesse módulo.https://angular.io/docs/ts/latest/guide/ngmodule.html#providers