Angular - 获取路线参数总是0

时间:2017-12-09 13:05:59

标签: angular

我在Angular中有一个routerlink。我正在尝试与routerlink一起发送一些数据。这是组件的html代码:

html代码:

<a routerLink="/register" [queryParams]="{ selRole: 1 }">Register Now</a>

在我的组件中:

ngOnInit() {
    this.route.queryParams
        .subscribe(params => {
            this.selRole = params['selRole'] || 0;
    });
    console.log(this.selRole)
}

但我总是得到一个0.这到底我到底做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试在[routerLink]和[queryParams]中使用相同的格式,即使它没有导致问题,

<a [routerLink]="['/register']" [queryParams]="{ selRole: 1 }">Register Now</a>

在将参数分配给 selRole 后,也将您的console.log放在哪里

ngOnInit() {
    this.route.queryParams
        .subscribe(params => {
            this.selRole = params['selRole'] || 0;
            console.log(this.selRole)
    });
}

答案 1 :(得分:0)

console.log(this.selRole)在调用queryParams.subscribe之前运行。

queryParams是一个可观察的,您正在订阅该observable。只有在调用时才会获得该值。

要获取该值,您可以将console.log移动到订阅块中。

ngOnInit() {
    this.route.queryParams
        .subscribe(params => {
            this.selRole = params['selRole'] || 0;
            console.log(this.selRole)
    });
}