From a622e19df6f8f8827d28ed4358042d158aa4400d Mon Sep 17 00:00:00 2001 From: Mark Kennedy Date: Sun, 15 Oct 2017 14:48:20 -0500 Subject: [PATCH] fix(router): 'merge' queryParamHandling strategy should be able to remove query params (#19733) Closes #18463, #17202 PR Close #19733 --- packages/router/src/router.ts | 6 +++--- packages/router/test/integration.spec.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/router/src/router.ts b/packages/router/src/router.ts index d1e36a57ec..0b92fcc778 100644 --- a/packages/router/src/router.ts +++ b/packages/router/src/router.ts @@ -408,6 +408,9 @@ export class Router { } else { q = preserveQueryParams ? this.currentUrlTree.queryParams : queryParams || null; } + if (q !== null) { + q = this.removeEmptyProps(q); + } return createUrlTree(a, this.currentUrlTree, commands, q !, f !); } @@ -463,9 +466,6 @@ export class Router { navigate(commands: any[], extras: NavigationExtras = {skipLocationChange: false}): Promise { validateCommands(commands); - if (typeof extras.queryParams === 'object' && extras.queryParams !== null) { - extras.queryParams = this.removeEmptyProps(extras.queryParams); - } return this.navigateByUrl(this.createUrlTree(commands, extras), extras); } diff --git a/packages/router/test/integration.spec.ts b/packages/router/test/integration.spec.ts index 96e16fe98c..5797f6dbee 100644 --- a/packages/router/test/integration.spec.ts +++ b/packages/router/test/integration.spec.ts @@ -1366,7 +1366,7 @@ describe('Integration', () => { @Component({ selector: 'someRoot', template: - `Link` + `Link` }) class RootCmpWithLink { } @@ -1378,7 +1378,7 @@ describe('Integration', () => { const native = fixture.nativeElement.querySelector('a'); - router.navigateByUrl('/home?a=123'); + router.navigateByUrl('/home?a=123&removeMe=123'); advance(fixture); expect(native.getAttribute('href')).toEqual('/home?a=123&q=456'); }));