32

最近、新しい RC3 と Router3alpha に更新しましたが、いくつか変更されているようです。

アクティブなルートのリンクをクリックしても、コンポーネントがリロードされなくなったことに気付きました。新しい router3 でこの動作を実現するにはどうすればよいですか?

私のリンクは次のようになります

<a [routerLink]="['/link1']">Link1</a>

テストするために、ngOnInit で乱数を使用しました。

export class LinkoneComponent implements OnInit 
{

    public foo: number;
    constructor() {}

    ngOnInit() 
    {
        this.foo = Math.floor(Math.random() * 100) + 1;
    }

}

ルートを切り替えるときは問題なく動作しますが、現在アクティブなルートをクリックしてもコンポーネントがリロードされません。

4

12 に答える 12

18

これは現在サポートされていません。パラメータ値のみが変更され、ルートが同じままである場合、コンポーネントは再作成されません。

https://github.com/angular/angular/issues/9811も参照してください

params にサブスクライブして、params が変更されたときに通知を受け取り、コンポーネント インスタンスを再初期化することができます。

https://stackoverflow.com/a/38560010/217408も参照してください。

于 2016-07-26T12:18:35.320 に答える
1

Angular 2 rc7 の場合 - ルーター 3.0

index.html のベース URL を次のように変更します<script>document.write('<base href="/" />');</script>

于 2016-09-22T05:07:33.203 に答える
0

JavaScriptオブジェクトは、という関数を持つメンバーをWindow公開します。locationreload

使用する、

window.location.reload();

参照: https://www.w3schools.com/jsref/met_loc_reload.asp

于 2021-02-23T00:24:53.047 に答える