Angular 2 - Data persistence


While building client-side apps, your intent is typically to work with some kind of data in a read-write fashion. So you end up needing a way to pull and process data from Javascript in the client. This is handled in a couple of different ways with Angular, depending on the source of your data. 

If you are only concerned with storing data for the time in which the user is using your application, you could store that data in memory. 



Angular's dependency injection makes this fairly trivial to do. You can create a Javascript class or object to store your data, provide it to your app as something that can be injected in, and then do constructor injection where needed to bring in the instance of that object. From there, you can do read-write updates to that object and have the changes available throughout. 



To work with data stored in browser storage, such as local storage, you will find the need to write your own Javascript code to do so, and then use it with the services pattern, leveraging Angular's dependency injection to work with it throughout your application. If you are looking to work with data from the server via an API, Angular has some built in framework stuff to help you with that. One way you can process data to and from an API is by leveraging the HTTP protocol. You can do this in two ways. 



One, by using the XML HTTP request or XHR and the other by using JSONP.
Angular provides an HTTP module in the framework for abstracting out working with the way XHR and JSONP calls are done via client script. So you can do things like make GET and POST calls that work with JSON data as simple as passing a URL and a Javascript object to an Angular HTTP function and subscribing to the results.