You could leverage shared service for this. It could contain both data and observables to subscribe on to be notified when data are updated.
-
Service
export class ListService { list1Event: EventEmitter<any> = new EventEmitter(); getLists() { return this.http.get(url).map(res => res.json()) .subscribe( (data) => { this.list1Event.emit(data.list1); } ); } }
-
Component
@Component({ selector: 'my-component1', template: ` <ul> <li *ngFor="#item of list">{{item.name}}</li> </ul> ` }) export class MyComponent1 { constructor(private service:ListService) { this.service.list1Event.subscribe(data => { this.list = data; }); } }
-
bootstrap
bootstrap(AppComponent, [ ListService ]);
See this question for more details: