2016-04-27 2 views
1

У меня есть компонент заголовка, где я делаю несколько логических переменных истинными, чтобы кнопки отображались в html. Таким образом, в основном в угловом 1.x мы использовали часы на location.path. Но в угловой 2 я понимаю, что у нас нет часов. Когда я больше разбирался в том, как добиться этого, я столкнулся с такими темами, как обнаружение изменений, ngOnChange, Observable, router.subscribe и т. Д. Я новичок в Angular 2 и использую Angular 2.0.0-beta.15.I не могу понять, какую тему я должен прочитать, чтобы найти решение. Может ли кто-нибудь помочь мне, какая тема относится к моей ситуации?Как следить за изменением маршрута и изменять значение логической переменной при каждом изменении маршрута в угловом 2?

ответ

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

    }  
} 
+0

@ A_Singh- вы правы. Большое спасибо. Прежде чем отправлять этот вопрос, я попытался использовать тот же код выше с функцией location.path() внутри подписки. т. е. this.router.subscribe (location.path() =>. rest все то же самое, что и выше. Но это привело к синтаксическим ошибкам, которые я не смог понять, что такое проблема синтаксиса .. Просто объяснил, что кто-то, возможно, попробовал Я сделал и в беде. – revathi

+0

приветствую вас! Это очень мило с вашей стороны :) –

2

Если вы используете @ угловом/маршрутизатор с версии 3.0.0-beta.2 Они изменили способ подписаться

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

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


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

Будет ли это работать, если у вас есть компонент вне ? Поэтому, если у меня есть статическая навигация, у которой есть кнопка, которую я хочу скрыть/показать, если значение истинно, будут ли эти события. Подписываться на широковещательную рассылку до этого компонента? –

Смежные вопросы