SafeValue must use [property]=binding: Here is NgRx - a state management solution that represents a place where the state of our application gets stored. This place is an immutable centralized store with which we interact as follows:
- We select slices of state from the Store using Selectors, which we can then render in our Components;
- To choose slices of state, we are using Selectors, which are renderable in components;
- We are sending Actions to our Store;
- Our Store redirects our Action to our Reducers to recalculate our state and replaces the form within our Store;
- To recalculate the new state and replace the old one, Store dispatches Actions to Reducers.
It would be better to explain the conception on the diagram:

As we go further, we use NgRx more and more, and interactions become more and more complicated. Here the Facade pattern rushes to the rescue. It makes it simple by wrapping NgRx in a dedicated place. It allows only the Component to interact with Facade. Thus, it protects Components and makes the NgRx artifacts refactoring more reliable. (see http://g.co/ng/security#xss)