feat(Router): call resolver when upstream params change (#12942)

With this change the resolver is called when the parameter for the activated and any parent routes change.
ie, switching from `/teams/10/players/5` to `/teams/12/players/5` will now trigger any `PlayerResolver`.
This commit is contained in:
Julien Elbaz
2016-12-14 13:21:45 +01:00
committed by Matias Niemelä
parent 46cb04d575
commit d4d3782d45
2 changed files with 51 additions and 4 deletions

View File

@ -356,5 +356,9 @@ export function advanceActivatedRoute(route: ActivatedRoute): void {
export function equalParamsAndUrlSegments(
a: ActivatedRouteSnapshot, b: ActivatedRouteSnapshot): boolean {
return shallowEqual(a.params, b.params) && equalSegments(a.url, b.url);
}
const equalUrlParams = shallowEqual(a.params, b.params) && equalSegments(a.url, b.url);
const parentsMismatch = !a.parent !== !b.parent;
return equalUrlParams && !parentsMismatch &&
(!a.parent || equalParamsAndUrlSegments(a.parent, b.parent));
}