2016-06-16 9 views
7

Bir sayfayı angular2'de yeniden yükleme.
Ağ üzerinden arama yaparken, sayfayı yeniden yüklemek için "this._router.renavigate()" kodunu aldım ancak angular2'nin en son sürümü ile çalışmadığı anlaşılıyor.
Başka bir yol ise 'window.location.reload()' ancak bunu yapmanın açısal yolu değil. Kısmi içinAngular2'de bir sayfa nasıl yeniden yüklenir

+2

Sayfanın yeniden yüklenmesi için açısal bir yol yoktur, çünkü genellikle bunu bir n Açısal uygulama. Kullanım durumu nedir? –

+0

'renavigate()' de sayfayı tekrar yüklemesi gerekmiyor, sadece tekrar aynı yola gitmek için. Bir sayfa yeniden yükleme, farklı bir şeydir çünkü tüm Açısal uygulamayı yeniden başlatacaktır. –

+0

kullanım durumu: her zaman uygulama/kiosk. Kendini güncelleştirmek için bir yol gerekir –

cevap

2

sayfayı yeniden çekecek kendi fonksiyonunu

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 yönlendiriciCanReuse şimdi aynı URL'de gezinmek için yardımcı olabilir: http://stackoverflow.com/a/37225256/5868331 – mayur

-3

location.reload yazmak için bir yol() bulunmaktadır.

11

Gerçekten RC6 ile

Tam Örnek

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 size. Gerçekten yardımcı oldu. Çalışılan tek şey. Sen bir hayat kurtarıcısın. – user3719857

1

test açısal bölge

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

dışında location.reload() çalıştırmak için gereken sayfayı yeniden istiyorsanız Bu bana uygun:

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

çok daha iyi bir UX yapar

*ngIf="auth.loggedIn()" 

ile görünürlüğü toggle hakkında ve bu benim için çalıştı budur Ne:

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

 
constructor(private location: Location) {} 
 

 
ngOnInit() { this.load(); } 
 

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