When you optimize for a stateful javascript client using a framework like angularjs then your composed/nested views will dictate the construction of your url`s. You do not have to do anything special on the server. Just keep your routing:
api/users/1
api/schoolyears/2013-2014
api/periods/2014-01-01
as you want it. These routes have nothing to do with the client state these routes forward the client request not more.
On client side you set up the routes with placeholders which are customerId`s
or
orderId`s. When you change now a customer in a combobox you can update your route with the new selected customerId and navigate to it to ge the according orders.
what you do on client side is just changing the url without redirect:
jquery: change the URL address without redirecting?
You just create a "url" after the hash like #/customers/1/orders/2
If you do not like the hashbang you can also go for html5 push state:
http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate