Component interaction with BehaviorSubject
To update the current weather information, we need the city-search
component to interact with the current-weather
component. There are four main techniques to enable component interaction in Angular:
- Global events
- Parent components listening for information bubbling up from children components
- Sibling, parent, or children components within a module that works off of similar data streams
- Parent components passing information to children components
Global events
This is a technique that's been leveraged since the early days of programming in general. In JavaScript, you may have achieved this with global function delegates or jQuery's event system. In AngularJS, you may have created a service and stored values in it.
In Angular, you can still create a root-level service, store values in it, use Angular's EventEmitter
class, which is really meant for directives, or use an rxjs/Subscription...