Open web-dave opened 6 years ago
ng g class shared/preload-delayed
providers: [PreloadDelayed],
import { PreloadingStrategy, Route } from '@angular/router';
import { Observable, of } from 'rxjs';
import { delay, flatMap } from 'rxjs/operators';
export class PreloadDelayed implements PreloadingStrategy {
preload(route: Route, fn: () => Observable<any>): Observable<any> {
if (route.data !== undefined) {
if (route.data.preload) {
return of(true).pipe(delay(3000),
flatMap(() => fn()));
}
} else {
return fn();
}
}
}
{
path: 'books',
loadChildren: () => import('./books/books.module').then(m => m.BooksModule),
data: {
preload: true
}
}
@NgModule({
imports: [RouterModule.forRoot(routes, {preloadingStrategy: PreloadDelayed})],
exports: [RouterModule]
})
export class AppRoutingModule { }
preload-delayed
classPreloadingStrategy
andRoute
AppMocule
PreloadingStrategy
,preload()