2016-07-13 10 views
9

Obecnie próbuję przejść do tej samej strony z różnymi wartościami identyfikatora. Więc jeśli jestem na /test/1 i przejdź do /test/2 adres URL aktualizacji przeglądarki, ale widok nie odświeża się. Debugowałem ngOnInit i nie powtórzyło się podczas nawigacji do /test/2. Jednak jeśli przejdę z test/1 do other, routing działa dobrze, problem występuje tylko podczas nawigacji do tej samej trasy o różnych parametrach. Czy ktoś inny ma do tego dostęp? Kiedy dostaję trochę czasu, złóż upload plunkr.Kątowy router rc3 - Nawigowanie na tę samą stronę o różnych parametrach

kątowa Router 2 RC3 3.0.0-beta.2

RouterConfig = [ 
    { 
     path: '', 
     component: 'Layout', 
     children: [ 
      { 
       path: 'test/:id', 
       component: TestComponent 
      }, 
      { 
       path: 'other', 
       component: OtherComponent 
      } 
     ] 
    } 
] 

Dzięki LL

Odpowiedz

14

Po przejściu do samej trasy o różnym param to ponowne komponent. W związku z tym ngOnInit nie będzie ponownie wywoływany. Powinieneś subskrybować routeparam w ngOnInit a następnie wykonać aktualizację widoku w funkcji subskrybowanego

Inject Activated trasę w konstruktorze

constructor(
    private route: ActivatedRoute, 
    private router: Router,......) {} 

W metodzie ngOnInit, używamy usługę ActivatedRoute pobierać parametry naszej trasie

ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
    let id = +params['id']; // (+) converts string 'id' to a number 
    //here goes your logic like below 
this.service.getHero(id).then(hero => this.hero = hero); 
    }); 
} 

więcej szczegółów see i sekcji "uzyskiwanie parametru trasy"

+0

Ach ok Rozumiem. Mój problem polegał na tym, że miałem wezwanie serwisowe w ramach ngOnInit zamiast subskrypcji params. Dzięki Agarwal – kLai