2016-07-14 5 views
0

Wie baut man einen Router neu auf? Wenn ich denselben Router aber mit einem anderen Parameter lade, ändert sich nur die URL, die Ansicht bleibt gleich. Gibt es eine Möglichkeit, den Router zu sagen - "Hey, bau dich wieder auf!"?Angular2 Wie man eine Ansicht neu erstellt (Routing)

Ich brauche einen Effekt wie window.location.reload(), aber ohne Nachladen.

Antwort

1

Wenn Sie zu derselben Route mit einem anderen Parameter navigieren, wird die Komponente erneut verwendet. Daher wird ngOnInit nicht erneut aufgerufen, so dass Sie denken, dass die Seite nicht aktualisiert wird. Sie sollten zu routeparam in ngOnInit abonnieren und führen Sie dann die Ansicht Update in abonnierten Funktion

Inject aktivierte Route in Konstruktor

constructor(
    private route: ActivatedRoute, 
    private router: Router,......) {} 
In the ngOnInit method, we use the ActivatedRoute service to retrieve the parameters for our route 

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

an einem anderen so aussehen Auch question

+0

Hey, danke. Es funktioniert, aber seltsam. Ich bin ein One Router zurück. Es ist wie: Geknickt A -> nichts, angeklickt B -> umgeleitet zu A, geklickt C -> umgeleitet zu B. Weißt du, was los ist? – elzoy

+0

Zeigen Sie uns Code, den Sie möglicherweise sehen, dass sich eine Warnung für den Konsolenausdruck nach der Überprüfung geändert hat. Versuchen Sie, den Setter in setTimeout zu verpacken. Zeigen Sie uns Code, der sich auf die Handhabung von Parametern bezieht –

+0

Entschuldigung, ich habe vergessen, meinen Code zu ändern. Ich habe das interne Abonnement this.route.params.snapshot ['id'] anstelle von params ['id'] verwendet. Danke, du schaukelst;) – elzoy

Verwandte Themen