Get current route without parameters
To get current route without query parameters, you can use below mentioned single line:
this.router.url.split('?')[0]
parseTree
from Router
helps fetching the segments without any knowledge about url structure.
import { Router } from '@angular/router';
...
constructor(private router: Router) {}
...
const urlTree = this.router.parseUrl(url);
const urlWithoutParams = urlTree.root.children['primary'].segments.map(it => it.path).join('/');
Start from here. If you have secondary outlets adjust as required.
For me, this is the cleanest solution I managed to do. I hope it helps
import { Router } from '@angular/router';
constructor(private router: Router){}
getUrlWithoutParams(){
let urlTree = this.router.parseUrl(this.router.url);
urlTree.queryParams = {};
urlTree.fragment = null; // optional
return urlTree.toString();
}