我已经看过很多在Angular 2+中订阅查询字符串参数的例子,但我似乎无法让它工作
e.g。 How get query params from url in angular2?
这是我的代码:
import { ActivatedRoute, Router } from '@angular/router';
...
export class MyComponent implements OnInit,OnDestroy {
private a: boolean = true;
private b: boolean = true;
constructor(route: ActivatedRoute) {
...
ngOnInit(): void {
this.route.queryParams.subscribe((queryParams:any) => {
this.a = queryParams.a;
this.b = queryParams.b;
});
我遇到的问题是this
似乎没有引用我的组件设置a
和b
我想用来驱动*ngIf
语句不工作
我做错了什么?
答案 0 :(得分:3)
以下代码适用于Angular 5.
import { ActivatedRoute, Router } from '@angular/router';
...
export class MyComponent implements OnInit, OnDestroy {
private a: boolean;
private b: boolean;
constructor(private route: ActivatedRoute) {
this.a = true;
this.b = true;
...
}
ngOnInit(): void {
this.route.queryParams.subscribe(queryParams => {
this.a = queryParams['a'];
this.b = queryParams['b'];
});
您可以尝试检查它是否有效吗?
答案 1 :(得分:0)
我认为你的问题是你的a和b是私人的......你必须在你的html中使它们成为PUBLIC的最佳用途:
null
答案 2 :(得分:0)
它对我有用...
let comp = this;
ngOnInit(): void {
this.route.queryParams.subscribe(queryParams => {
comp.a = queryParams['a'];
comp.b = queryParams['b'];
});
答案 3 :(得分:-2)
你正在失去'这个'。您应该创建函数并将其绑定到此组件并将其放在订阅回调上。
你也可以保存这个
const self = this