如何在Angular 2中每次路径更改时观察路线变化并更改布尔变量的值?

时间:2016-04-27 00:34:39

标签: routes angular components watch

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

2 个答案:

答案 0 :(得分:2)

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;
        });

   }    
}

答案 1 :(得分:2)

如果你在版本3.0.0-beta.2中使用@ angular / router.2他们已经改变了订阅的方法

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

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


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