有角度的。替换网址参数

时间:2018-12-12 12:04:17

标签: angular

我有一些要点。在此组件中,我可以获取url参数,如下所示:

const campaignIdParam: number = +this.route.snapshot.paramMap.get('campaignId');

告诉我如何在浏览器的地址栏中以编程方式替换此campaignId而不重新加载页面吗?

更新: 我的网址是这样的:

http://localhost:4200/#/company/2

1 个答案:

答案 0 :(得分:1)

您可以使用:

this.location.replaceState(
           path, query, state
        );

来自Angular文档:

/**
 * Changes the browsers URL to the normalized version of the given URL, and replaces
 * the top item on the platform's history stack.
 */
replaceState(path: string, query?: string, state?: any): void;

更新:

更具体地说,您可以使用以下代码:

this.location.replaceState(
            this.router.createUrlTree(
                [tempUri],
                {queryParams: queryParamsObj}
            ).toString()
        );

此代码的构造函数的一部分

constructor(private location: Location,
            private router: Router) {
}