我订阅了路由更改:
public ngOnInit() {
this.subscription = this.activateRoute.params.subscribe(params => {
this.language = params['id'];
});
console.log(this.language);
}
但是当我通过点击链接更改路径路径时,我看不到console.log(this.language);
。它没有显示。没有错误。
为什么?
答案 0 :(得分:1)
订阅方法用于订阅发送到observable的消息。这是ASYNC函数,所以你必须在subscribe中打印“this.language”值
public ngOnInit() {
this.subscription = this.activateRoute.params.subscribe(params => {
this.language = params['id'];
console.log(this.language);
});
}
答案 1 :(得分:0)
subscribe
是异步的。在调用此console.log()
语句之前可以调用this.language = params['id'];
(我们不会知道流,因为它是异步的)。
您应该将console.log(this.language);
放在subscribe
:
this.subscription = this.activateRoute.params.subscribe(params => {
this.language = params['id'];
console.log(this.language);
});
这将确保在console.log(this.language);
之后立即调用this.language = params['id'];
,因为两个语句都是同步的。