我正在制作angular2应用程序.我最大的问题是无法推迟加载主要组件的依赖子组件,直到某些承诺得到解决.
我有app.component.ts,类名为AppComponent,我在boot.ts中引导,如下所示:
bootstrap(AppComponent,[ROUTER_PROVIDERS,HTTP_PROVIDERS]);
现在我想在导航到我的默认路由之前调用一些非常重要的http服务,即 – ‘/’.一个http服务向我返回数据,该数据将用于执行SEO并在各种路由上设置元数据.
在您的请求完成后,您可以异步引导.这是一个示例:
var app = platform(BROWSER_PROVIDERS) .application([BROWSER_APP_PROVIDERS,appProviders]); var service = app.injector.get(CompaniesService); service.executeSomething().flatMap((data) => { var companiesProvider = new Provider('data',{ useValue: data }); return app.bootstrap(appComponentType,[ companiesProvider ]); }).toPromise();
有关详细信息,请参阅此问题:
> angular2 bootstrap with data from ajax call(s)
和相应的plunkr:https://plnkr.co/edit/ooMNzEw2ptWrumwAX5zP?p=preview.