如何通过路由器将数据从角度组件传递到另一个组件?

时间:2019-05-24 07:12:26

标签: angular

  

我试图通过以下方式将数据从角度分量传递到另一个分量   路由器。有什么优雅的解决方案吗?

我试过了,它正在起作用。

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”});

3 个答案:

答案 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