2017-11-22 16 views
0

replaceStateを使用しているときに、アクティブ化されたルーティングに関連する問題に直面しています。私がしようとしているのは、formを提出した後、私が得ている応答で、ルートURLのkeyIdidを置き換えているということです。角2:replaceStateでアクティブなルートURLを変更する方法

ここで説明します。以下は私のアクティブ化ルートのURLです:

home/screen/user/detail/keyId/id 

私は方法以下に私のフォームを送信しています。このビューの下のフォームを持っている:

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

コードの上に新しいkeyIdidではなく場合は、ルートURLを置き換えます私はどのルートにもマッチできないようなエラーを与えるページをリフレッシュします。しかし、私の要求は、一度私はそれが変更されたURLを読み込む必要がありますページを更新しています。

の代わりにrouter.navigateを試しましたが、期待どおりに動作しません。このシナリオで誰かが私を助けることができれば、私はとても感謝しています。

答えて

0

あなたはこの仕事をするために、コードの下に使用することができます:

this._router.navigate(['YourUrl/UpdatedKeyId/id']); 
window.location.reload(); 
関連する問題