fix(router): resolve and guards should be able to reject with null and undefined (#19418)

Closes #17148
This commit is contained in:
Victor Savkin
2017-09-28 14:06:08 -04:00
committed by Victor Berchet
parent ff5b050a92
commit a9d32a3f89
5 changed files with 26 additions and 9 deletions

View File

@ -47,7 +47,7 @@ export class PreActivation {
private future: RouterStateSnapshot, private curr: RouterStateSnapshot,
private moduleInjector: Injector, private forwardEvent?: (evt: Event) => void) {}
initalize(parentContexts: ChildrenOutletContexts): void {
initialize(parentContexts: ChildrenOutletContexts): void {
const futureRoot = this.future._root;
const currRoot = this.curr ? this.curr._root : null;
this.setupChildRouteGuards(futureRoot, currRoot, parentContexts, [futureRoot.value]);

View File

@ -625,7 +625,7 @@ export class Router {
preActivation = new PreActivation(
snapshot, this.routerState.snapshot, moduleInjector,
(evt: Event) => this.triggerEvent(evt));
preActivation.initalize(this.rootContexts);
preActivation.initialize(this.rootContexts);
return {appliedUrl, snapshot};
});

View File

@ -104,7 +104,7 @@ export function navigationCancelingError(message: string) {
}
export function isNavigationCancelingError(error: Error) {
return (error as any)[NAVIGATION_CANCELING_ERROR];
return error && (error as any)[NAVIGATION_CANCELING_ERROR];
}
// Matches the route configuration (`route`) against the actual URL (`segments`).