【发布时间】:2020-09-01 02:26:32
【问题描述】:
在路由中,当我们将某个值作为参数从一个组件传递到另一个组件时,传递的参数值会附加到浏览器 url... 有什么办法可以避免?
在附加快照的示例中,“管理员”是我从 home.ts 组件传递的用户名
我的路由如下
[![export const routes: RouterConfig = \[
{ path: '', component: Login },
{ path: 'login', component: Login },
{ path: 'Home/:userName', component: Home },
...HOME_ROUTER_PROVIDERS
}
\]
export const HOME_ROUTER_PROVIDERS: RouterConfig = \[
{
path: 'Home/:userName',
component: Home,
children: \[
{ path: 'Dashboard1', component: Dashboard1 },
{ path: 'Dashboard2', component: Dashboard2 },
....
}
\]][1]][1]
我的 home.ts 我在其中执行 navigate.route 以传递参数
export class Home {
userName: any;
constructor(private activatedRoute: ActivatedRoute) {
console.log("In constructor of Home");
activatedRoute.params.subscribe(params => {
this.userName = params['userName']
});
}
}
【问题讨论】:
-
路由器的工作是将状态反映到浏览器的 URL 栏,并将 URL 反映到状态。如果您不希望它的一部分反映在 URL 栏中,则不要使用路由器维护此状态。除了@MadhuRanjan 的回答,请参阅angular.io/docs/ts/latest/cookbook/…