gpt4 book ai didi

angular - ionic Angular 预加载所有模块仅在设备上

转载 作者:行者123 更新时间:2023-12-03 16:11:14 26 4
gpt4 key购买 nike

如何在设备上使用 preload all 策略,在浏览器上使用 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]

了解更多信息;
  • https://celilsemi.erkiner.com/blog/ionic-angular-preload-modules-only-on-device/
  • https://ionicframework.com/docs/angular/platform
  • https://angular.io/api/router/PreloadingStrategy
  • 关于angular - ionic Angular 预加载所有模块仅在设备上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62040487/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com