我试图通过以下方式将数据从角度分量传递到另一个分量 路由器。有什么优雅的解决方案吗?
我试过了,它正在起作用。
this.router.config.forEach(route => {
if (route.path === 'pages') {
route.children.forEach((child) => {
if (child.path === 'saveName') {
child.data = {
name: "Jack"
};
}
});
}
});
this.router.navigate(['/pages/saveName']);
还要发送包含数据的文件。
只想知道是否有更优雅的解决方案,例如 下面的一个。
this.router.navigate(['/ pages / saveName'],{“ name”:“ Jack”});
答案 0 :(得分:0)
是的,请查看documentation:
this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);
答案 1 :(得分:0)
我认为是更好的解决方案。请检查以下链接。
https://angular.io/guide/router#fetch-data-before-navigating
答案 2 :(得分:0)
Angular 7.2支持在导航过程中通过状态对象传递数据
您可以在navigationByUrl方法中传递状态对象
this.router.navigateByUrl('/path', { state: { hello: 'world' } });
或
使用routerLink指令传递数据
<a routerLink="/path" [state]="{ hello: 'world' }">Go</a>`
然后使用paramMap Observabele读取数据以仅过滤window.history.state
constructor(public activatedRoute: ActivatedRoute) {}
ngOnInit() {
this.state$ = this.activatedRoute.paramMap.pipe(
map(() => window.history.state)
);
}
检查此链接:https://netbasal.com/set-state-object-when-navigating-in-angular-7-2-b87c5b977bb