如何在页面之间传递Angular中的参数

Posted

技术标签:

【中文标题】如何在页面之间传递Angular中的参数【英文标题】:How to pass parameters in Angular between pages 【发布时间】:2021-07-07 18:18:49 【问题描述】:

我的 Node.js 后端以 JSON 形式返回 AWS Cognito 令牌,这些令牌在我的 Angular login 组件中接收。

我希望打开我的dashboard 并传递收到的令牌 在我的login.component.ts 函数中我做:this.router.navigate(['/dashboard', tokens: data ]); 在发送数据之前我将它打印到控制台,它看起来很好

在我的dashboard.component.ts 中,我不确定为什么令牌无法访问

import  Component, OnInit  from '@angular/core';
import  ActivatedRoute, Router  from '@angular/router';

constructor(private route: ActivatedRoute, private router: Router)    

ngOnInit() 

this.route.queryParams.subscribe(params => 
            console.log('params = ' + params);
            var data = params['tokens'];
            console.log('data = ' + data);
            for(let key in data)
                console.log('key = ' + key + ' data= ' + data[key]);
            
        );

这是“console.log”输出params = [object Object]data = undefined

我做错了什么?

【问题讨论】:

【参考方案1】:

您发送的是参数而不是查询参数,因此您的代码应该是:-

this.route.params.subscribe(params => 
            console.log('params = ' + params);
            var data = params['tokens'];
            console.log('data = ' + data);
            for(let key in data)
                console.log('key = ' + key + ' data= ' + data[key]);
            
        );

【讨论】:

我仍然无法访问令牌这是console.log params = [object Object] data = undefined 你能提供一个stackblitz吗? 不知道怎么创建

以上是关于如何在页面之间传递Angular中的参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在Angular中的路由之间传递非字符串对象?

如何在Angular中的路由组件之间传递数据

如何在 XAML 页面之间传递值(参数)?

如果组件不是Angular2中的父子组件,如何在组件之间传递数据?

Angular 2 - 如何传递 URL 参数?

如何在 Angular 的 HTTP 发布请求中传递 url 中的查询参数