0

我已经在我的 app.component.ts 页面上实现了 ActivatedRoute。这是我有一个大的红色退出按钮的页面,它按预期出现在我的应用程序的所有页面上。

我跳转到我创建的 url(带有查询字符串),如下所示:

http://localhost:4200/status?returnString=xyz

private route: ActivatedRoute我的构造函数中有一个。在我的ngOnInit()功能中,我有console.log(this.route.queryParams);. 这将返回一个对象,其中是具有预期._value属性的对象。returnString: "xyz"

问题是,当我console.log(this.route.queryParams.returnString)console.log(this.route.queryParams._value)我被提供一个没有属性的对象时。{}.

我的问题是,发生了什么,或者,我做错了什么?我需要什么才能从我可以在 Angular 5 中使用的 URL 获取参数?

4

2 回答 2

2

queryParams您遇到的问题是由于Observable.

在您的ngOnInit()函数中,您需要订阅 observable:

ngOnInit() {
    this.route. queryParams.subscribe(
      params => {//Do something with the params.returnString},
      err => console.log(err)
);
}

Angular 官方文档 - ActivatedRoute

于 2018-07-11T21:18:40.653 回答
1

queryParams是一个 Observable,所以你应该监听变化而不是检查值。

当 app.component 启动时,该值尚未设置,但是当您检查它时,它是。这可能就是你正在经历的。

设置监听器并对更改做出反应

route.queryParams.subscribe((params: Params) => this.doSomething(params.returnString))
于 2018-07-11T21:20:20.390 回答