2016-06-16 6 views
7

Wie Sie eine Seite in angular2 neu laden.
Bei der Suche im Netz, habe ich einen Code "this._router.renavigate()", um die Seite neu zu laden, aber sieht aus wie es mit der neuesten Version von angular2 nicht funktioniert.
Ein anderer Weg ist 'window.location.reload()', aber das ist nicht die eckige Art, es zu tun.Wie Sie eine Seite in angular2 neu laden

+2

Es gibt keine Möglichkeit, die Seite neu zu laden, weil Sie das in der Regel nicht tun möchten n Winkelanwendung. Was ist der Anwendungsfall? –

+0

'renavigate()' soll auch nicht die Seite neu laden, nur um wieder zum selben Pfad zu navigieren. Ein Seiten-Reload ist etwas anderes, weil es die gesamte Angular-Anwendung neu initialisiert. –

+0

Anwendungsfall: Immer Anwendung/Kiosk. brauchen einen Weg für die App selbst zu aktualisieren –

Antwort

2

Für Teil gibt es Möglichkeit, Ihre eigene Funktion

public renavigate(): void { 
    let params: Object = {}; 
    Object.assign(params, this.routeParams.params); 
    params['ref'] = (params['ref'] === ref) ? ref + new Date().getTime() : ref; 
    this.router.navigate(['Foo', params]); 
    } 
+0

Angular 2 routerCanReuse kann jetzt helfen, auf der gleichen Url navigieren: http://StackOverflow.com/a/37225256/5868331 – mayur

-3

location.reload() zu schreiben, wird die Seite neu.

11

Wenn Sie wirklich wollen, die Seite, die Sie location.reload() außerhalb der Winkelzone müssen nachladen

this.zone.runOutsideAngular(() => { 
    location.reload(); 
}); 

mit RC6

Voll Beispiel

import { Component, NgZone } from "@angular/core"; 

@Component({   
    templateUrl: "template.html"  
}) 
export class ReloadComponent{ 
    constructor(
     private zone: NgZone) { 
    } 

    reloadPage() { // click handler or similar 
     this.zone.runOutsideAngular(() => { 
      location.reload(); 
     }); 
    } 
} 
+0

Thnak Sie. Es hat wirklich geholfen. Das einzige, was funktioniert hat. Du bist ein Lebensretter. – user3719857

1

getestet laufen Dies funktioniert bei mir:

method().subscribe(
    location.reload(); 
); 
0

Was ist über toogle die Sichtbarkeit mit

*ngIf="auth.loggedIn()" 

, die eine viel bessere UX macht

1

ich hatte das gleiche Problem, und das ist was für mich gearbeitet:

import { Location } from '@angular/common'; 
 

 
constructor(private location: Location) {} 
 

 
ngOnInit() { this.load(); } 
 

 
load() { 
 
    this.location.reload(); 
 
}

Verwandte Themen