Angular 2: window.location.reload() メソッドで現在のルートをリロードする
Angular 2 ルーターで現在のルートをリロードする方法
router.navigateByUrl() メソッドを使用する
最も簡単な方法は、router.navigateByUrl()
メソッドを使用することです。このメソッドは、現在の URL を同じ URL で再読み込みします。
import { Router } from '@angular/router';
constructor(private router: Router) {}
reloadCurrentRoute() {
this.router.navigateByUrl(this.router.url);
}
shouldReuseRoute()
メソッドは、ルートが再利用されるかどうかを決定するために使用されます。このメソッドを false
に返すことで、現在のルートを常にリロードすることができます。
import { Router, ActivatedRoute } from '@angular/router';
constructor(private router: Router, private route: ActivatedRoute) {}
shouldReuseRoute(current: ActivatedRouteSnapshot, future: ActivatedRouteSnapshot): boolean {
return false;
}
Location
サービスは、ブラウザの履歴と URL を操作するために使用されます。go()
メソッドを使用して、現在の URL を再読み込みすることができます。
import { Location } from '@angular/common';
constructor(private location: Location) {}
reloadCurrentRoute() {
this.location.go(this.location.path());
}
注意点
router.navigateByUrl()
メソッドを使用する場合は、現在の URL を取得する必要があります。shouldReuseRoute()
メソッドを使用する場合は、すべてのルートでこのメソッドをオーバーライドする必要があります。Location
サービスを使用する場合は、ブラウザの履歴が更新されることに注意する必要があります。
Angular 2 ルーターで現在のルートをリロードするには、いくつかの方法があります。どの方法を使用するかは、要件によって異なります。
補足
- 上記のコードは TypeScript で書かれています。
- Angular 2 のバージョンによって、コードが多少異なる場合があります。
- 詳細については、Angular 2 の公式ドキュメントを参照してください。
<button (click)="reloadCurrentRoute()">リロード</button>
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
constructor(private router: Router) {}
ngOnInit() {
}
reloadCurrentRoute() {
this.router.navigateByUrl(this.router.url);
}
}
このコードを実行すると、「リロード」ボタンをクリックすると、現在のルートがリロードされます。
上記のコード以外にも、shouldReuseRoute()
メソッドや Location
サービスを使用して現在のルートをリロードすることができます。
現在のルートをリロードするその他の方法
window.location.reload()
メソッドは、ブラウザの現在のページをリロードします。この方法は、すべての Angular 2 コンポーネントからアクセスできます。
window.location.reload();
import { Location } from '@angular/common';
constructor(private location: Location) {}
reloadCurrentRoute() {
this.location.back();
}
Router
サービスは、Angular 2 アプリケーション内のナビゲーションを管理するために使用されます。navigate()
メソッドを使用して、現在のルートを同じ URL で再読み込みすることができます。
import { Router } from '@angular/router';
constructor(private router: Router) {}
reloadCurrentRoute() {
this.router.navigate([this.router.url]);
}
angular typescript