gpt4 book ai didi

javascript - 如何将任意(非参数化)数据传递到 Angular 中的路由?

转载 作者:行者123 更新时间:2023-12-01 02:38:18 25 4
gpt4 key购买 nike

首先:这不是重复的。链接的重复问题的答案使用了我不追求的服务。

我有一个路由表:

const routes: Routes = [
...
{ path: 'comp1', loadChildren: './module1/module1.module.ts#Module1Module' },
...
];

在主组件的构造函数(app.component.ts)中,我导航到:

constructor(private router: Router){
router.navigate(['/comp1',{aaa:222,bbb:{ccc:3}}])
}

但是 - 它被序列化为 URL。

https://angular-iqfnre-router.stackblitz.io/comp1;aaa=222;bbb=%5Bobject%20Object%5D

现在 - 我不希望它出现在网址中。 (更不用说该值无效)

此外 - 惰性模块中的远程路由是:

const routes: Routes = [
{
path: '', component: Comp1Component,

children: [{
path: 'acomp', component: AComponent,
}]

}
];

所以它不支持参数(我不是在谈论参数而是复杂的数据)。

我不想更改路由表。

问题:

如何将任意(复杂)数据传递到路线 - 以及在路由后如何读取它?

Stackblitz

注意

我不想使用服务。我确信还有另一个选项可以用数据加载路线。 docs提到了 NavigationExtras 但我认为它仍然使用 URL。(请 - 不要字符串化)。

最佳答案

对于这种要求,我建议使用共享服务。这样您就可以传递所需的数据类型,而不会在路由上造成任何额外的开销。

关于javascript - 如何将任意(非参数化)数据传递到 Angular 中的路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47731975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com