如何监听路由角度的变化?

时间:2017-07-27 08:04:51

标签: angular angular-routing

我订阅了路由更改:

public ngOnInit() {
    this.subscription = this.activateRoute.params.subscribe(params => {
      this.language = params['id'];
    });

    console.log(this.language);
  }

但是当我通过点击链接更改路径路径时,我看不到console.log(this.language);。它没有显示。没有错误。

为什么?

2 个答案:

答案 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'];,因为两个语句都是同步的。

相关问题