私はangular0でこのcustom route preloadingがどのように機能するのか理解しようとしています。しかし、私はちょうど最初の場所でそれを働かせることができません。Angular2 PreloadingStrategyが機能しない
はここに私のコードです
custom.preloading-strategy.ts
export class CustomPreloadingStrategy implements PreloadingStrategy {
preload(route: Route, fn:() => Observable<any>): Observable<any> {
console.log("Preloading...");
return Observable.of(true).delay(1000).flatMap(_ => fn());
}
}
app.routes.ts
const appRoutes: Routes = [
{
path: '',
redirectTo: 'home',
pathMatch: 'full',
data: {
preload: true
}
},
{
path: 'home',
component: HomeComponent,
data: {
preload: true
}
}
];
export const appRoutingProviders: any[] = [
CustomPreloadingStrategy
];
export const routeComponents: any[] = [
HomeComponent
];
export const routing = RouterModule.forRoot(appRoutes, {
preloadingStrategy: CustomPreloadingStrategy,
useHash: true
});
app.module.ts
@NgModule({
bootstrap: [AppComponent],
providers: [appRoutingProviders, appServices],
imports: [
BrowserModule,
FormsModule,
HttpModule,
routing
],
declarations: [
AppComponent,
SharedComponents,
appDirectives,
routeComponents,
NewsMediaListComponent
],
entryComponents: [AppComponent]
})
DEPS
"@angular/common": "2.1.2",
"@angular/compiler": "2.1.2",
"@angular/core": "2.1.2",
"@angular/forms": "2.1.2",
"@angular/http": "2.1.2",
"@angular/platform-browser": "2.1.2",
"@angular/platform-browser-dynamic": "2.1.2",
"@angular/router": "3.1.2",
"rxjs": "5.0.0-rc.1",
しかし、全くエラーまたはがログにありません。そして私はここで何が欠けているのか分からない。
私は実際にその記事の例を得ました。しかし、私はモジュールとコンポーネント( 'TestComponent'と' TestModule')に別の名前を使用してあなたの正確な解決策を試しましたが、私はまだ 'console.log'を取得しません。私の 'appRoutes'に' component'または 'loadChildren'を使っても、デバッガは' preload'行でブレークし、その内部でスクリプトを実行しません。 – choz
あなたの編集した解決策の違いは、 'PreloadingStrategy'をアプリケーションルート' providers'にインポートすることだけです。実のところ、私の元の質問では、私はそれをあらかじめ含めておき、それを私のルータモジュール 'RouterModule.forRoot(appRoutes、{preloadingStrategy:CustomPreloadingStrategy、useHash:true})にも含めました。これはまだ私のために働いていない。 – choz