加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – ActivatedRoute.queryParams未定义

发布时间:2020-12-17 10:24:17 所属栏目:安全 来源:网络整理
导读:我正在尝试使用Angular 2.0捕获查询字符串参数,并且我很难过.我有一个这样的网址 http://localhost:5000/?id_token=eyJ0eXAiO …. 我希望能够在路由占用之前捕获id_token的值,并且我丢失了参数.我发现了这个GitHub问题线程 https://github.com/angular/angul
我正在尝试使用Angular 2.0捕获查询字符串参数,并且我很难过.我有一个这样的网址

http://localhost:5000/?id_token=eyJ0eXAiO ….

我希望能够在路由占用之前捕获id_token的值,并且我丢失了参数.我发现了这个GitHub问题线程

https://github.com/angular/angular/issues/9451

但是这使用了一种不再适用的弃用方法.我尝试了以下方法

var foo = this.activatedRoute.queryParams.subscribe(params => {
        console.log(params);
        let id = params['id_token'];
        console.log(id);
    });


   console.log(this.router.routerState.snapshot.root.queryParams["id_token"]);

   var bar = this.activatedRoute.params.subscribe(
        (param: any) => console.log(param['id_token']));

我在构造函数中尝试了这些方法以及我的组件的ngOnInit(),但控制台始终显示未定义.我是在错误的地方做这件事吗我根本无法更改QS,因为它是由Azure AD创建的.

尝试注入ActivatedRoute并使用route.snapshot.queryParams [‘name’]获取queryParam,如下所示:
class SomeComponent implements OnInit {
    constructor(private route: ActivatedRoute) { }
    ngOnInit(): void {
        let value = this.route.snapshot.queryParams['name'];
    }
}

通过router.navigate设置queryParams的工作方式如下:

class SomeComponent {
    constructor(private router: Router) { }
    goSomewhere(): void {
        this.router.navigate(['somewhere'],{ queryParams: { name: 'value' } });
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读