25 lines
699 B
TypeScript
25 lines
699 B
TypeScript
// #docregion
|
|
import 'rxjs/add/observable/of';
|
|
import { Injectable } from '@angular/core';
|
|
import { PreloadingStrategy, Route } from '@angular/router';
|
|
import { Observable } from 'rxjs/Observable';
|
|
|
|
@Injectable()
|
|
export class PreloadSelectedModules implements PreloadingStrategy {
|
|
preloadedModules: string[] = [];
|
|
|
|
preload(route: Route, load: Function): Observable<any> {
|
|
if (route.data && route.data['preload']) {
|
|
// add the route path to our preloaded module array
|
|
this.preloadedModules.push(route.path);
|
|
|
|
// log the route path to the console
|
|
console.log('Preloaded: ' + route.path);
|
|
|
|
return load();
|
|
} else {
|
|
return Observable.of(null);
|
|
}
|
|
}
|
|
}
|