장치에서 모든 전략을 미리로드하고 브라우저에서 nopreload를 사용하는 방법은 무엇입니까? 다음과 같이 모든 모듈을로드 할 수 있습니다.
imports: [
CommonModule,
RouterModule.forRoot(appRoutes, { preloadingStrategy: PreloadAllModules }),
...
],
이것은 모든 플랫폼의 모든 모듈을 미리로드하지만 브라우저에서 실행할 때 미리로드를 방지하고 싶습니다. 그리고 기기에만 미리로드해야합니다.
Ionic Platform
및 Angular에서 가능 PreloadingStrategy
합니다. 사용자 지정 사전로드 전략이 필요합니다. 다음은 원하는 작업을 수행하는 샘플 전략입니다.
import { Injectable } from '@angular/core';
import { PreloadingStrategy, Route } from '@angular/router';
import { Observable, of } from 'rxjs';
import { Platform } from '@ionic/angular';
@Injectable({
providedIn: 'root'
})
export class LocalOnlyPreloadingStrategy implements PreloadingStrategy {
constructor(private platform: Platform) { }
public preload(route: Route, fn: () => Observable<boolean>): Observable<boolean> {
if (this.platform.is('hybrid')) {
// Running on a device
return fn();
}
// Not running on a device
return of(false);
}
}
PreloadAllModules
코드에서 사용하는 것처럼 가져 와서 사용할 수 있습니다 .
imports: [
CommonModule,
RouterModule.forRoot(appRoutes, { preloadingStrategy: LocalOnlyPreloadingStrategy }),
...
],
providers: [LocalOnlyPreloadingStrategy]
자세한 내용은;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다