2016-07-13 22 views
9

Attualmente sto provando a navigare verso la stessa pagina con diversi valori di identificazione. Quindi se sono su /test/1 e vai a /test/2 l'url nel browser si aggiorna ma la vista non si aggiorna. Ho eseguito il debug di ngOnInit e non è stato eseguito nuovamente durante la navigazione su /test/2. Tuttavia, se vado da test/1 a other, il routing funziona correttamente, il problema si verifica solo quando si naviga sulla stessa rotta con parametri diversi. Qualcun altro ha incontrato questo? Quando avrò un po 'di tempo, caricherò un plunkr.Router angolare rc3 - Navigazione verso la stessa pagina con diversi parametri

angolare router 2 RC3 3.0.0-beta.2

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

Grazie, LL

risposta

14

Quando si accede a stessa strada con diversi param esso riutilizzare il componente. Quindi, ngOnInit non verrà richiamato. Si dovrebbe sottoscrivere routeparam in ngOnInit e poi fare l'aggiornamento vista in funzione sottoscritto

Inject itinerario attiva nel costruttore

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

Nel metodo ngOnInit, usiamo il servizio ActivatedRoute per recuperare i parametri per il nostro percorso

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

Per maggiori dettagli see e la sezione "Getting il parametro percorso"

+0

Ah ok capisco. Il mio problema era che avevo la mia chiamata di servizio all'interno di ngOnInit invece della mia sottoscrizione params. Grazie Agarwal – kLai

Problemi correlati