每次 Angular 2 中的路线变化时如何观察路线变化和布尔变量的变化值?

How to watch route change and change value of boolean variable every time route changes in Angular 2?

我有一个 header 组件,我将几个布尔变量设置为 true 以使按钮在 html 中可见。所以基本上在 angular 1.x 中我们在 location.path 上使用 watch。但是在 angular 2,我知道我们没有手表。当我更多地探索如何实现这一点时,我遇到了诸如变化检测、ngOnChange、Observable、router.subscribe 等主题。我是 Angular 2 的新手并使用 Angular 2.0.0 -beta.15.I 无法理解我应该阅读哪个主题来找到解决方案。谁能帮我看看哪个主题与我的情况相关?

import {Router} from 'angular2/router';

@Component({
.....
})
export class YourCmp {

   someVar: boolean = false;

   constructor(private router: Router){

         this.router.subscribe(() => {
           // this code will run on every route change
          // do what you want, here

             this.someVar = !this.someVar;
        });

   }    
}

如果您使用的是 3.0.0-beta.2 版的@angular/router 他们已更改订阅方法

import {Router} from "@angular/router";

@Component({
.....
})
export class YourCmp {


    constructor(private router: Router) {
        this.router.events.subscribe(route => {
            console.log(route.url);
        });
    }
}