2017-11-22 1 views
0

Ich habe ein Problem mit aktiviertem Routing während der Verwendung mit replaceState. Was ich versuche zu tun ist, dass nach dem Einreichen der form ich die keyId und id in der Route URL mit der Antwort erhalte ich bin.Angular 2: So ändern Sie die aktivierte Routen-URL mit replaceState

Lassen Sie mich hier erklären. Im Folgenden finden Sie URL meiner aktivierten Route:

home/screen/user/detail/keyId/id 

I Form unter dieser Ansicht haben, wo ich meine Form mit unten Methode vorlege:

onSubmit(userItem: UserItem){ 
    this.userService.saveUser(userItem).subscribe(res => { 
    let keyId = res.keyId; 
    let id = res.id; 

    // tried this but doesn't work 
    /* this.router.navigate(["home/screen/user/detail/" + keyId + "/" + id], { replaceUrl: true }) */ 

    // this one working but seems like temporary fix 
    this.location.replaceState("home/screen/user/detail/" + keyId + "/" + id); 
    }) 
    } 

Above Code ersetzen die Route URL mit neuen keyId und id aber wenn Ich aktualisiere die Seite, die einen Fehler gibt, wie kann keine Routen übereinstimmen. Aber meine Anforderung ist, sobald ich die Seite aktualisiere, sollte es die geänderte URL laden.

Ich versuchte router.navigate statt replaceState, aber es funktioniert nicht wie erwartet. Wenn mir jemand in diesem Szenario helfen kann, dann bin ich sehr dankbar.

Antwort

0

Sie unter Code verwenden können, um diese Arbeit zu machen:

this._router.navigate(['YourUrl/UpdatedKeyId/id']); 
window.location.reload(); 
Verwandte Themen