How about storing the unsaved changes in a cache? May be localStorage or sessionStorage? When the user is in /xyz and selects a few things ($scope.selected_data), you can store the data in cache. When the user goes to a different view and comes back to the old one /xyz, you can read from the cache and re-initialize the $scope models.