I have a web app that includes a mini-SPA that is a very complex worksheet. This worksheet can include dozens of pages, each with dozens of fields and links to other parts of the worksheet. Currently architected using AngularJS, every click within the worksheet navigation or on-screen links calls a function (example loadWorksheetPage(x)). These functions in the controller call a REST service and load the correct page information.
The disadvantage I have now is that everything is taking place on a single url. A user could potentially spend a lot of time on different pages in the same worksheet. Maybe they'll expect the back button to work, but currently, it would take them to the last page they visited before the worksheet.
What are some best practices around this type of application? This is a mini-SPA so I don't want angularjs to handle all routing. I could potentially have it handle routing within a worksheet I suppose (worksheet/5/page/7?). That may be a pretty big change though, and I would have to hit an MVC route first (worksheet/5) followed by an angular route (/page/7). Not sure if that's even possible. I'm thinking of any time the user clicks a button to load a different page within a worksheet, I could call an API that saves the page history. Then I could interrupt the back button click to go to the correct page.