Basically I built a dal access layer based on promises for delegating to from my viewmodels. I also built a view transition manager into my app shell also, part of my core SPA framework.
I also added a bespoke option piece for hydrating routes. I have this api for my SPA called /public/routing and user/{id}/routing which returns the json config for API's for either anonymous or authenticated users. it is key on the Sammy Hash intercepts and provides me with the glue, i.e. what external view template should I transition too, what view Model should I load for this, also what API and Verbs are supported for the users role! its great, because my site admin can added routes on the fly, and its totally modular from a dev point of view, so if a new route can not be found, I just load the Empty View Template Placeholder (in development environment of course ).