Angular 角度4-解析器和延迟加载策略

Angular 角度4-解析器和延迟加载策略,angular,lazy-loading,Angular,Lazy Loading,我在我们的应用程序中看到了一个非常有趣的场景,它使用了延迟加载策略,其中基于API的URL是从GET请求加载的。我们决定采用这种方法的原因是,我们希望构建我们的应用程序并将其部署到任何环境(具有不同的API位置),而无需硬编码基于API的URL 我想向服务器发出第一个GET请求,以获取基于API的URL,然后将基于API的URL设置为HTTPWrapper服务。然后,所有子序列HTTP请求都将遵循基于该URL的URL 现在,实现第一个HTTP请求的最佳位置是哪里 我们可以创建一个Universa

我在我们的应用程序中看到了一个非常有趣的场景,它使用了延迟加载策略,其中基于API的URL是从GET请求加载的。我们决定采用这种方法的原因是,我们希望构建我们的应用程序并将其部署到任何环境(具有不同的API位置),而无需硬编码基于API的URL

我想向服务器发出第一个GET请求,以获取基于API的URL,然后将基于API的URL设置为HTTPWrapper服务。然后,所有子序列HTTP请求都将遵循基于该URL的URL

现在,实现第一个HTTP请求的最佳位置是哪里

我们可以创建一个UniversalResolve服务并在所有顶级路由中使用它吗

   export const ROUTES: Routes = [
    { path: '', redirectTo: 'home', pathMath: 'full' },
    { path: 'home', loadChildren: './home/home.module#HomeModule', resolve :{ data : UniversalResolve} },
    { path: 'admin', loadChildren: './admin/admin.module#AdminModule', resolve :{ data : UniversalResolve} }
    ];
正如您所见,UniversalResolve正在应用于所有最高级别。。这将导致GET请求获取基于API的URL,我们将页面从主页切换到管理员,然后返回主页等

有更好的解决办法吗


感谢高级版。

为什么您需要使用
resolve
而不是简单地定义服务?然后,您可以使用延迟应用程序启动,直到获得数据。感谢您的输入。实际上,我可以在应用程序组件中注入一个ApiService,它可能在以下位置执行两件事情:一是获取基于api的URL并将其设置为httpwrapper。二-通过httpwrapper获取所有参考数据。我遇到的问题是,所有GET方法都会在设置基于URL之前检索引用数据。