2016-12-21 5 views
1

Ich verwende Route Resolver, wie:Fortschritt Lader NG2 Route Resolver

routes.push({ 
    path: '', component: MainComponent, children: [ 
     {path: 'config', component: ConfigurationWizardComponent, resolve: { settings: SettingsResolver }}, 
     {path: 'jobs', children: [ 
     {path: '', component: JobsOverviewComponent, resolve: { settings: NoFallbackSettingsResolver }}, 
     {path: 'add', component: JobFormComponent, resolve: { databases: DatabaseResolver }}, 
     ]}, 
     {path: '', redirectTo: '/jobs', pathMatch: 'full'}, 
    ], 
    }); 

Da jedoch die Resolvern eine Weile in Anspruch nehmen, so scheint es, dass die Anwendung nicht alles ist beendet, bis die Resolver zu tun.

Ist es möglich, dem Benutzer während der Ausführung eines Routenauflösers irgendeine visuelle Rückmeldung zu geben?

Antwort

1

Ich habe dieses Problem auch. Wenn Sie planen, einen einfachen Loader zu haben, der keinen Fortschritt anzeigt (z. B. einen einfachen Spinner Loader), können Sie die Ereignisse eines Routers abonnieren und den Loader ein- und ausblenden.

constructor(private router: Router) { 
router.events 
.filter(event => event instanceof NavigationStart) 
.subscribe(() => { // show the progress bar }); 

    router.events 
.filter(event => event instanceof NavigationEnd) 
.subscribe(() => { // complete the progress bar }) 
} 

Wenn Sie jedoch planen, während des Ladens keine Fortschritte zeigen (wie Bar Youtube Fortschritt an der Spitze), dass ich immer noch nicht weiß, wie zu implementieren.