を変更して、そこ
export class MyComponent {
constructor(private route : ActivatedRoute,
private r : Router) {}
reloadWithNewId(id:number) {
this.r.navigateByUrl('my/' + id + '/view');
}
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
this.paramsChanged(params['id']);
});
}
paramsChanged(id) {
console.log(id);
// do stuff with id
}
}
を初期化を行うようにする計画があります。ルータの問題では、私の解決策は、ルータを控え、私のコンポーネントがそのことをすることでした。
window.location.href = '/my/' + new_id_param + '/view';
あなたが右のparamsにURLを訪問してロードされているからそれを妨げる何のガードを持っていない場合、これはまた、あなたのために働くことができます。
「ベストプラクティスの方法」ではなく、私のために働きます。
実際にスレッドが示唆していることは、私が持っていると思われる振る舞いとは逆です。しかし、それらを設定可能にすることができれば、すべてのシナリオでうまくいくかもしれません。 – Mustafa
あなたの見方に依存します;-)現在、デフォルトの動作は古い 'routerCanReuse(){trueを返します。 } '、しかしあなたが望むものは' routerCanReuse(){return false; } '。 –
正確に..ルートが呼び出されるたびに実行するコンストラクタが必要なので。 – Mustafa