首页 > 解决方案 > 是否可以动态更改在 Angular 6 中加载延迟加载模块块的 URL?

问题描述

我正在开发一个 Angular 6 应用程序,但由于部署原因,我无法从(到目前为止)分配给它们的 URL 加载由我的应用程序的延迟加载模块生成的块。当我导航到延迟加载模块时,应用程序需要来自的块“4.js” my_application_base_href/4.js,但这在我的部署案例中不起作用。

我曾尝试探索路由器事件并研究延迟加载,但这似乎是角度路由中更深层次的机制。也许它以某种方式与 webpack 配置有关。

我发现块的加载是由在 webpack 配置中配置的 angular-router-loader 执行的。但是,似乎没有任何配置选项可以动态修改 URL,¿也许一些替代加载器会提供这个?

const routes: Routes = [
  {
    path: '**',
    loadChildren: './reservar/reservar.module#ReservarModule', /* This generates the problems after building */
    pathMatch: 'full',
  }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule {
}

我想知道是否存在任何方法来更改以动态方式加载此模块的 URL。这个想法是从window(例如window.baseUrl)中获取一个变量,并确保 Angular 将从该 URL 而不是原始 URL 加载块。在调用加载之前自己操作 URL 的某种方法就足够了。

标签: angularmoduleroutinglazy-loadingngroute

解决方案


推荐阅读