fix(router): throw an error when navigate to null/undefined path

Closes #10560

Fixes #13384
This commit is contained in:
Dzmitry Shylovich
2016-12-12 01:33:21 +03:00
committed by Matias Niemelä
parent 8c7e93bebe
commit 46cb04d575
2 changed files with 21 additions and 0 deletions

View File

@ -526,6 +526,7 @@ export class Router {
*/
navigate(commands: any[], extras: NavigationExtras = {skipLocationChange: false}):
Promise<boolean> {
validateCommands(commands);
if (typeof extras.queryParams === 'object' && extras.queryParams !== null) {
extras.queryParams = this.removeEmptyProps(extras.queryParams);
}
@ -1238,3 +1239,12 @@ function getOutlet(outletMap: RouterOutletMap, route: ActivatedRoute): RouterOut
}
return outlet;
}
function validateCommands(commands: string[]): void {
for (let i = 0; i < commands.length; i++) {
const cmd = commands[i];
if (cmd == null) {
throw new Error(`The requested path contains ${cmd} segment at index ${i}`);
}
}
}