我想知道是否有一种方法可以在调用navigate方法时获取Angt的路由器生成的URL。

例如:
this._router.navigate(['browse'], { queryParams: { section: 'users', isActive: true } });
可能会导致导航到/browse#?section=users&isActive=true
如何在不执行导航或在浏览器中更新URL的情况下获得此路线?

最佳答案

看看 createUrlTree :

this._router.createUrlTree(
    ['browse'], { queryParams: { section: 'users', isActive: true } });

返回的对象 UrlTree 具有toString函数,该函数应为您提供所需的内容。

您可以从source中看到navigate实际上在内部使用createUrlTree:
navigate(commands: any[], extras: NavigationExtras = {skipLocationChange: false}):
        Promise<boolean> {
    validateCommands(commands);
    return this.navigateByUrl(this.createUrlTree(commands, extras), extras);
}

关于angular - 获取将由router.navigate生成的URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47796031/

10-10 04:40