How would you dispatch a ngrx action when the query params of an URL change? I have an URL with parameters (for example <http://myapp.my/documents?startdate=2015-04-04&enddate=2015-06-06> ) and when user clicks the back (forward) browser button, angular will navigate to the previous (next) URL which might have different search parameters. So I need to dispatch a "load documents" action to load corresponding docs from DB. I can see multiple ways to do it.

1. I could bind a ngrx @Effect to the angular-router
"navigationend" Observable and check if the URL matches
"/documents". the effect would dispatch a load documents action
2. I could bind an ngrx @Effect to ROUTER\_NAVIGATION Action produced by ngrx/router-store and have a action. Problem here is that ROUTER\_NAVIGATION does not guarantee that the user will really get to the intended page (for example they could be blocked by a route guard),
3. I could dispatch the action inside canActivate() guard of the "documents" path - maybe other problems are hiding here (Edit: tested this and it does not work because canActivate is only called once. It is not called again when URL parameters change.)
4. some better way?

Angular 5, ngrx 4.