IMO, you could use the browser's local storage to store data on the page you want to keep when reloading it.
Check at this:
https://github.com/grevory/angular-local-storage
Basically, in the controller of the concerned page, if data is present in local storage, you build the page rendering from them, otherwise, page with the default values will be displayed.
As soon as a change is made by the user on this page, you update the concerned set of data in the local storage.
Be aware, that you may want to clear the local storage at any time, perhaps when user has just been disconnected.
Personally, I use it to save the state of the search filters about a list of items, during the whole user navigation.
You may be interested by the introduction of local storage in HTML 5:
http://diveintohtml5.info/storage.html
$httpto cache responses (as appropriate for your app). That way, when you return to a view, the data that was previously retrieved from the server will be retrieved from the cache. You get this for free just by settingcache: true. Where it makes sense, you can remove data from the cache so Angular will retrieve it from the server the next time. Depending on your app, your mileage may vary...