I’ve had to do something similar, when a core data point changed we wanted to refresh the data on each vm of our current route in order, EX: root => vm 1 => vm 2 => vm 3
My hacky implementation was putting a random char at the beginning of the route and changing it by splicing apart
window.location.hash and resetting it since the router system reacts whenever that string was changed.
Doing so would trigger the
activate() method chain down the line from root to vm 3 in order on each view model. If you return a promise in the activate it’ll also wait until it’s finished to move onto the next vm. I’m guessing it would also trigger the
canDeactivate methods as well.
Not sure if that helps you out.
I’d be curious to know if anyone has found a better way aside from some sort of priority event system.